rAV*_*AVi 5 php mysql sql join
我正在使用类别,产品关系来查找数据.我的情况就像我有一个类别表和产品表与categoryid和产品类型.不,假设我有一个特定的类型,我想找到特定类型的产品没有的那些类别.表结构就像
Category Table
____________
|Id|Category|
| 1| X |
_____________
Product Table
____________________________
|ID | Product|Category| Type|
| 1 | Y | 1 | 2 |
_____________________________
Run Code Online (Sandbox Code Playgroud)
我可以通过使用子查询来找到它
SELECT *
FROM category
WHERE id NOT IN(SELECT category
FROM product
WHERE type = 2);
Run Code Online (Sandbox Code Playgroud)
有没有办法通过另一种方式获得它
我也喜欢使用JOIN
SELECT *
FROM category AS c
JOIN products AS p
ON c.id <> p.category
WHERE p.type = 2
Run Code Online (Sandbox Code Playgroud)
为什么这不能给出适当的结果.
使用LEFT JOIN和使用IS NULL谓词:
SELECT *
FROM category AS c
LEFT JOIN products AS p
ON c.id = p.category
AND p.type = 2
WHERE p.category IS NULL;
Run Code Online (Sandbox Code Playgroud)
第二个表中不匹配的行将在category字段中具有空值,WHERE p.category IS NULL将过滤并为您提供
| 归档时间: |
|
| 查看次数: |
2709 次 |
| 最近记录: |