我真的可以使用以下SQL Select语句场景的一些帮助:
我需要有条件地从表中选择所有行,具体取决于userID是否已将数据输入到具有相同ID的第二个表中。
示例:
TABLE A
========
idNumber|type|Date
1 A 01/01/01
2 A 01/01/01
3 B 01/01/01
4 B 01/01/01
5 B 01/01/01
TABLE B
========
idNumber|type|userID
1 A 0000
3 B 0000
4 B 1111
用于排除= 1111
的记录的userIDSQL Query应该返回:
idNumber|type|Date
1 A 01/01/01
2 A 01/01/01
3 B 01/01/01
5 B 01/01/01
为长篇大论的帖子道歉,但我希望这是有道理的。
非常感谢, ukjezza。!!
答案 0 :(得分:3)
看起来LEFT JOIN
和COALESCE
可以照顾它:
SELECT a.*
FROM TableA as a
LEFT JOIN TableB as b
ON a.idNumber = b.idNumber
WHERE COALESCE(b.userID, -1) != 1111
答案 1 :(得分:3)
Select idNumber, type, Date
From TableA
Where Not Exists (
Select 1
From TableB
Where TableB.idNumber = TableA.idNumber
And TableB.userID = 1111
)
另一种选择:
Select TableA.idNumber, TableA.type, TableA.Date
From TableA
Left Join TableB
On TableB.idNumber = TableA.idNumber
And TableB.userId = 1111
Where TableB.idNumber Is Null
答案 2 :(得分:1)
select A.*
from TableA as A
left outer join TableB as B
on A.idNumber = B.idNumber
where B.idNumber is null or
B.userID <> '1111'