我有两个表,tab1和tab2.
tab1(T1) tab2(T2)
a1 b1
b1 c1
c1 f1
d1 g1
Run Code Online (Sandbox Code Playgroud)
我正在寻找T2中不存在的表T1中的值.在这种情况下,输出应该是a1 d1
我已尝试使用以下查询但无法获得正确的解决方案.
select distinct tab1.T1 from tab1 left semi join tab2 on (tab1.T1!=tab2.T2);
Run Code Online (Sandbox Code Playgroud)
jav*_*dba 17
SELECT t1.str
FROM tab1 t1
LEFT OUTER JOIN tab2 t2 ON t1.str = t2.str
WHERE t2.str IS NULL;
Run Code Online (Sandbox Code Playgroud)
结果:
OK
a1
d1
Run Code Online (Sandbox Code Playgroud)
"为什么t2.str在那里是空条件":左外连接确保第一个表中的所有值都包含在结果中.那么当第二个表中没有值时会发生什么:在这种情况下,第二个表中的所有列都报告为null.
因此,在上面的情况下,我们正在精确搜索第二个表项缺失的情况 - 因此我们:
| 归档时间: |
|
| 查看次数: |
15206 次 |
| 最近记录: |