![](/img/trans.png)
[英]Excluding all ID values based on criteria, with a one to many relationship - SQL
[英]Excluding records based upon a one to many SQL join
如果一个到多个连接中的一个(外部)记录匹配某个条件,我将如何编写排除记录的SQL查询?
例如:
Details
ID
1
2
Items
DetailID Item
1 A
1 B
2 B
2 C
如何选择项目不包含“A”的详细记录?
SELECT *
FROM details d
WHERE NOT EXISTS (
SELECT *
FROM items i
WHERE i.DetailID == d.ID
AND i.Item = 'A')
建立在systempuntoout的解决方案上:
SELECT details.*
FROM details
LEFT OUTER JOIN items ON details.ID=items.DetailID AND items.Item = 'A'
WHERE items.DetailID IS NULL
为什么不直接使用INNER JOIN:
SELECT details.*
FROM details
INNER JOIN items ON details.ID=items.DetailID AND items.Item<> 'A'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.