我有这个查询对表执行left join
并返回一些行。
使用左连接查询:
Select DISTINCT
e.id,e.name
from employee e
left join
job j on j.id = e.id
where e.id like 'D%'
现在,对于同一个查询,我想使用left join
得到结果而不用,我能够生成这个SQL查询,它给出了与上述查询相同的结果。
没有左连接的查询:
Select DISTINCT
e.id,e.name
from employee e, job j
where e.id like 'D%' AND (e.id=j.id OR e.id <> j.id)
虽然查询返回与上面相同的结果,但我的问题是: 第二个查询是否有意义以及它是否等同于左连接?
答案 0 :(得分:1)
我认为exists
是更自然的方法:
Select e.id, e.name
from employee e
where exists (select 1 from job j where j.id = e.id) and
e.id like 'D%';
这也应该有更好的表现。
编辑:
Dnoeth非常好。我错过了&#34;左边&#34;在left join
。最简单的查询是:
Select e.id, e.name
from employee e
where e.id like 'D%';
我希望id
是唯一的,因此不需要select distinct
。