Boa tarde!
Queria saber como eu faço pra selecionar um valor que tem uma tabela intermediária entre duas tabelas n para n?
Exemplo, construi um banco de dados que tem as seguintes tabelas com os seguintes relacionamentos:
create database bd_cafe;
use bd_cafe;
create table cafes (id_cafe int auto_increment, nome_cafe varchar(30) not null,
descricao_cafe varchar(50), id_intensidade_cafe int, id_familia_cafe int,
id_classificacao_cafe int, id_marca_cafe int,
primary key (id_cafe));
create table classificacao (id_classificacao int auto_increment, desc_clas varchar(30) not null,
primary key (id_classificacao));
create table marca (id_marca int auto_increment, nome_marca varchar(30),
primary key (id_marca));
create table xicara_cafe (id_cafe int, id_xicara int,
primary key (id_cafe, id_xicara));
create table xicara (id_xicara int auto_increment, nome_xicara varchar(30) not null,
primary key (id_xicara));
create table intensidade (id_intensidade int(2) primary key);
create table familia (id_familia int auto_increment, nome_familia varchar(30) not null,
primary key (id_familia));
alter table cafes add foreign key (id_intensidade_cafe) references intensidade(id_intensidade);
alter table cafes add foreign key (id_familia_cafe) references familia(id_familia);
alter table cafes add foreign key (id_classificacao_cafe) references classificacao(id_classificacao);
alter table cafes add foreign key (id_marca_cafe) references marca(id_marca);
alter table xicara_cafe foreign key (id_cafe) references cafes(id_cafe);
alter table xicara_cafe foreign key (id_xicara) references xicara(id_xicara);
Alguns cafés podem preparar até 2 tipos de bebidas (ex: Ristretto e Espresso). Outros podem preparar somente um tipo. A dúvida é, como eu faço para selecionar um valor (no caso o nome do café), que só prepara um único tipo de café?
Imagem do esquema do banco para uma melhor compreensão: