我有三张桌子。产品,产品类别和产品类别链接。链接表就在那里,因为产品可以在多个类别中。
我想要实现的是一个包含附加字段的所有类别的列表,该字段说明该特定产品ID是否属于该类别。
SELECT *, l.product_id as checked FROM `ProductCategories` LEFT JOIN ProductCategoriesLink l ON l.category_id = ProductCategories.id WHERE ( l.product_id = 1 ) AND ( ProductCategories.id > 0 ) GROUP BY ProductCategories.id ;
但目前,这只会检索产品所在的类别。
任何建议表示赞赏。
答案 0 :(得分:1)
SELECT
ProductCategories.*,
l.product_id IS NOT NULL AS ProductInCategory
FROM
ProductCategories
LEFT JOIN ProductCategoriesLink AS l ON
ProductCategories.id = l.category_id AND
l.product_id = 1
这利用了这样的事实:当执行LEFT JOIN
时,对于左侧表中的每一行至少返回一行。如果右侧表格中没有匹配的行,则该表格中的列都是NULL
。