Я пытаюсь понять, почему следующие два оператора 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
Основное отличие заключается в том, что один ставит item.DomainId = 2
в конце, а не в его собственном выборе. Мне кажется, они дали бы те же результаты.
Грег
Любая причина в отношении downvotes? –