我知道您可以像这样使用左连接来模拟内部连接:
select * from a inner join b on a.Id= b.Id
select * from a left join b on 1 = 1 where a.Id= b.Id
我想知道这个。它也等同于内部联接吗?如何比较性能?
select * from a LEFT join b on a.Id = b.Id where b.Id IS NOT NULL
答案 0 :(得分:2)
这等效于内部联接:
select *
from a left join
b
on a.Id = b.Id
where b.Id is not null;
编译器是否识别等效性取决于特定的数据库。
内部联接与外部联接的潜在联接路径通常有所不同(内部联接为优化器提供了更多选择)。因此,对于查询的left join
版本,其性能可能会有所不同。