MySQL选择没有特定类别的项目

时间:2016-11-15 15:36:52

标签: mysql

我有2个表:cart_itemcart_item_category

两个表都有itemref用于加入它们。

现在,itemref表中可能有多个cart_item_category,因为每个项目可以属于多个类别。

cart_item_category表中的第二个字段是catid。现在,我想要选择cart_item中没有关联catid为63的所有项目。

我无法弄清楚如何编写该查询。

我也只想展示食品。

所以这是我的查询的开始。

我知道这是不对的,因为我只是返回所有不等于63的记录。

我只想显示没有关联catid为63的记录。

SELECT ci.pid, ci.itemref, ci.name, cic.catid 
FROM cart_item ci 
JOIN cart_item_category cic USING (itemref) 
WHERE ci.isfood = 1 AND cic.catid != 63;

1 个答案:

答案 0 :(得分:1)

这将是:

SELECT ci.pid, ci.itemref, ci.name 
FROM cart_item ci 
WHERE NOT EXISTS (select FROM cart_item_category cic 
    WHERE cic.itemref = ci.itemref 
    AND cic.catid = 63);