次の 2 つの SQL ステートメントが異なる結果をもたらす理由を理解しようとしています。1 つ目は期待どおりに機能し、2 つ目はレコードを生成しません。
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
主な違いはitem.DomainId = 2
、それ自体の選択ではなく、最後に配置することです。私には、それらが同じ結果を生み出すように思えます。
グレッグ