所以我有一个有点复杂的mysql查询问题。我有3张桌子。一个是项目表。一个是类别表。一个是一个链接表,只有2个字段,itemID和categoryID。这是一个多对多关系,因此一个项目可以是多个类别,每个类别可以有多个项目。现在,类别表中的两个字段是isactive和ismain。它们只是1或0的bool。我想抓住所有只属于isactive = 0或ismain = 0或两者的类别的项目。
我花了一些时间为一个人设置一个sql小提琴。 http://sqlfiddle.com/#!9/b03842/2
答案 0 :(得分:0)
使用子查询的解决方案:
SELECT DISTINCT i.* FROM cart_item i
JOIN cart_item_category ic ON i.itemref = ic.itemref
WHERE ic.catid IN (
SELECT id FROM cart_category WHERE active = 0 OR ismain = 0
)