选择项目仅在特定类别中的行

时间:2016-08-03 19:29:06

标签: mysql

所以我有一个有点复杂的mysql查询问题。我有3张桌子。一个是项目表。一个是类别表。一个是一个链接表,只有2个字段,itemID和categoryID。这是一个多对多关系,因此一个项目可以是多个类别,每个类别可以有多个项目。现在,类别表中的两个字段是isactive和ismain。它们只是1或0的bool。我想抓住所有只属于isactive = 0或ismain = 0或两者的类别的项目。

我花了一些时间为一个人设置一个sql小提琴。 http://sqlfiddle.com/#!9/b03842/2

1 个答案:

答案 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 
  )