我有3张桌子: 产品,类别和产品_to_category。
产品
id name
1 monitor
2 computer
3 speaker
4 lcd
5 microphone
类别
id name
1 displays
2 speakers
product_to_category
id product_id category_id
1 1 1
2 4 1
3 3 2
我需要这样的东西:“扬声器”类别中的所有产品和不属于任何类别(计算机和麦克风)的产品
product_id product_name
2 computer
3 speaker
5 microphone
我需要一个查询。我已经完成了两个查询,但我需要一个查询,因为 http://datatables.net/
答案 0 :(得分:0)
尝试
Select
Product.id,product.name
From
product
left outer join product_to_category As ptc
on product.id = ptc.product_id
Where
ptc.category_id = 2
or
isnull(ptc.id,0)=0
Group by
product.id, product.name
如果使用mysql ..
,请使用ifnull
代替isnull
答案 1 :(得分:0)
替代WHERE
条款:
SELECT product.id, product.name
FROM product
LEFT JOIN product_to_category AS ptc
ON product.id = ptc.product_id
WHERE IFNULL(ptc.category_id, 0) IN(0, 2);
SQL小提琴链接:http://sqlfiddle.com/#!2/7aaeff/8