【发布时间】:2014-01-18 05:57:23
【问题描述】:
我正在使用类别、产品关系来查找数据。我的情况就像我有一个带有 categoryid 和产品类型的类别表和产品表。不,假设我有一个特定类型,我想找到特定类型的产品没有的那些类别。 表结构是这样的
Category Table
____________
|Id|Category|
| 1| X |
_____________
Product Table
____________________________
|ID | Product|Category| Type|
| 1 | Y | 1 | 2 |
_____________________________
我可以使用类似的子查询找到它
SELECT *
FROM category
WHERE id NOT IN(SELECT category
FROM product
WHERE type = 2);
有没有办法通过其他方式得到它
我也使用类似 JOIN 的方法
SELECT *
FROM category AS c
JOIN products AS p
ON c.id <> p.category
WHERE p.type = 2
为什么这没有给出适当的结果。
【问题讨论】:
-
如果你有
a JOIN b ON a.id <> b.id,你正在做的是join each row from 'a' and join it to every row from 'b' where the id's are different。