Имеет ли значение порядок при использовании «ON» в соединениях sqlserver 2008 - PullRequest
0 голосов
/ 10 февраля 2011

при написании запроса с использованием любых объединений имеет значение, на какой стороне основано On

Пример

select * from customer C
join Address ON A.CustomerId=C.CustomerID  -- would it make a difference if I did    ON    C.CustomerId=A.CustomerID 
where c.CustomerId=1

А как насчет левого или правого объединений?

спасибосерия

Ответы [ 3 ]

2 голосов
/ 10 февраля 2011

Нет.Вы все еще присоединяетесь к двум столам.Я бы посоветовал располагать соединительный стол справа от себя.

0 голосов
/ 10 февраля 2011

Равенство является коммутативной операцией.A=B совпадает с B=A, поэтому конкретный порядок в предложении JOIN не имеет значения.

Если вы выполняли тесты неравенства, < и >, то порядок будет иметь значение.B>A не то же самое A>B (и то же самое для A<B и B<A)

0 голосов
/ 10 февраля 2011

Имеет ли это значение?

ВЛЕВО против ПРАВА - зависит от желаемых результатов.

SELECT * FROM A LEFT JOIN B ON A.aid=b.aid

даст вам все результаты от A, независимо от того, имеют ли они совпадающую запись в B, поэтому поля, возвращаемые из B, будут NULL для записей, где B не совпадает.*

даст вам все записи из B и возможность нулевых значений в полях, предоставленных A ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...