我试图通过三个表之间的查询来获取与之无关的数据,但我还没有实现这一壮举。
在我的情况下,我有三张桌子
在这种情况下,品牌和类别之间的关系是多对多的,因为品牌可以有多个类别或产品系列,或者一系列产品或类别,可以是多个品牌或由多个品牌生产。例如
雀巢是一个品牌,可以生产饼干,巧克力和哥伦比亚,生产饼干和巧克力。如果仔细观察,两者都会产生饼干,但一种产生巧克力,另一种产生巧克力。
然后,我想知道在选择雀巢的情况下如何获得巧克力,因为它不会产生巧克力,或者如果在数据库中注册了几个,那么获得所有不具有巧克力的巧克力引用了这个品牌。
答案 0 :(得分:0)
对于MS-Access,您必须在ORACLE / MYSQL中使用等效的MINUS运算符。在这种情况下可以做到:
select distinct a.*
from
( select m.Nombre_marca, c.nombre_categoria from
Marcas m, categorias c) a
left outer join
(select m1.Nombre_marca, c1.nombre_categoria
from T_marc_categ mc
join Marcas m1 on m1.Id_marca_a = mc.nomb_marca
join categorias c1 on c1.Id_categoria_auto = mc.nomb_linea) b
on (a.nombre_marca=b.nombre_marca and
a.nombre_categoria = b.nombre_categoria)
where b.nombre_marca is null and
b.nombre_categoria is null