Для упрощенного запроса:
Select t1.c1, t1.c2, t2.d1
FROM table1 t1
LEFT JOIN table2 t2
ON
(t1.c1 = t2.d2)
Из математики с точки зрения симметричного свойства кажется, что это будет точно так же, как если бы ON было изменено на:
Select t1.c1, t1.c2, t2.d1
FROM table1 t1
LEFT JOIN table2 t2
ON
(t2.d2 = t1.c1)
Всегда ли это истинно в TSQL или есть какое-то исключение, когда можно было бы получить больше строк, если бы запрос был слегка изменен, как описано выше?
Я узнал, что очень тонкие изменения соединения (в запросах, намного более сложных, чем этот простой пример) могут сильно повлиять на количество строк.
Кроме того, в дополнение к возвращаемым строкам (которые, я думаю, всегда должны быть ТОЧНО ОДИНАКОВЫМИ для обоих запросов), я полагаю, что один порядок предложения ON может повысить скорость выполнения запроса. Может ли кто-нибудь это проверить?
order by
. Оптимизатор запросов будет использовать индексы (если они есть) и их статистику для определения (вероятного) наилучшего способа выполнения оператора. - person HABO   schedule 21.07.2021