Объединяет в Oracle: Какое поле на какой стороне знака =?

При объединении таблиц с помощью метода объединения таблиц ANSI-89 (старый) или ANSI-92 ("новый") имеет значение, с какой стороны вы размещаете поля из двух объединяемых таблиц.

Например, лучше ли сделать:

From 
TABLE_1 A

Join
TABLE_2 B
    on A.ID = B.ID

Или следующее лучше?

    on B.ID = A.ID

Это просто эстетика? Или это влияет на работу соединений?

РЕДАКТИРОВАТЬ: Для дальнейшего уточнения, как насчет левых соединений? Например:

From
TABLE_1 A

Left Join
TABLE_2 B
    on A.ID = B.ID

Это так же, как

    on B.ID = A.ID

Однако при использовании ANSI-89 Where A.ID = B.ID (+) это не то же самое, что Where B.ID = A.ID (+) поскольку второй присоединяется к А БТО?

2 ответа

Решение

Это не имеет значения. Единственный раз, когда порядок имеет значение, это когда вы выполняете соединения LEFT и RIGHT OUTER, но все эти ключевые слова попадают перед ключевым словом ON.

= оператор симметричный, поэтому a.id = b.id точно так же, как b.id = a.id, Лично я предпочитаю иметь поля из таблицы водителя (один в FROM пункт) на левой стороне оператора, но это чисто эстетическое предпочтение.

Другие вопросы по тегам