我是MySQL的新手,试图了解联接的工作原理。
我有两个表:categories
和products
,每个表都包含id
和name
字段。
第三个表是{_ 1}}和category_id
的product_to_category(多对多)。
我想列出包含指定产品的所有类别(ID = 5)。 为此,我做了以下查询:
product_id
我想知道是否可能出现相反的情况:列出所有不包含指定产品的类别?
非常感谢!
答案 0 :(得分:0)
我会使用not exists
运算符:
SELECT c.`id`, c.`name`
FROM `categories` c
WHERE NOT EXISTS (SELECT *
FROM `product_to_category` ptc
WHERE c.`id` = ptc.`category_id` AND
ptc.`product_id` = 5)