我试图理解为什么以下两个 SQL 语句会给出不同的结果。第一个按预期工作,第二个不产生任何记录。
Select * from Jet.LayoutListItemEntity_Default itemDefault
Join Jet.LayoutListEntity b
on itemDefault.UiKey = b.UiKey
Left join (Select * from Jet.LayoutListItemEntity where DomainId =2) item
on itemDefault.BindingPath = item.BindingPath
where item.DomainId is null
and b.DomainId = 2
Select * from Jet.LayoutListItemEntity_Default itemDefault
Join Jet.LayoutListEntity b
on itemDefault.UiKey = b.UiKey
Left join Jet.LayoutListItemEntity item
on itemDefault.BindingPath = item.BindingPath
where item.DomainId is null
and item.DomainId = 2
and b.DomainId = 2
主要的区别是人们把 theitem.DomainId = 2
放在最后,而不是放在它自己的选择中。在我看来,它们会产生相同的结果。
格雷格