SQL连接与空表"Not Equal To"操作符
本文关键字:quot Equal To 操作符 Not 连接 SQL | 更新日期: 2023-09-27 18:08:28
我有两个表T1和T2
T1,列id &数据
T2 with columns id &T1_id
i想加入T1。id和T2。T1_id
我想要T2中id不存在的T1的所有记录也就是说,T1。id <> T2T1_id
所以如果T2为空,所有T1的记录都应该被取出
问题是
- 如果我使用左连接,那么T1 id的所有记录都将被获取,即使T2中存在T1_id对应的记录
- 如果我不使用左连接一切都在工作,除了T2是空的,那么没有记录被获取
你离你想要的很近了。LEFT JOIN
就足够了,你的语句中唯一缺少的是WHERE
子句条件。
SELECT a.*
FROM T1 a
LEFT JOIN T2 b
ON a.ID = b.T1_ID
WHERE b.T1_ID IS NULL
LINQ
版本:
var _result = from a in T1
join b in T2 on a.ID equals b.T1_ID into b_join
from b in b_join.DefaultIfEmpty()
where b.T1_ID == null
select a;