Что означает знак ( + ) в предложении Oracle SQL WHERE? [дубликат]
Возможные Дубликаты:
Oracle: что делает(+)
do в предложении WHERE?
рассмотрим упрощенный SQL-запрос ниже, в среде базы данных Oracle (хотя я не уверен, что он специфичен для Oracle):
SELECT
t0.foo, t1.bar
FROM
FIRST_TABLE t0, SECOND_TABLE t1
WHERE
t0.ID (+) = t1.ID;
что это (+)
запись в WHERE
предложения? Мне жаль, если это невежественный вопрос новичка, но это было очень трудно найти на Google или StackOverflow... потому что даже при использовании кавычек поисковые системы видят знак " + " и, похоже, хотят рассматривать его как какую-то логическую директиву.
1 ответ:
это специфичная для Oracle нотация для внешнего соединения. Это означает, что он будет включать все строки из t1 и использовать нули в Столбцах t0, если в t0 нет соответствующей строки.
в стандартном SQL можно было бы написать:
SELECT t0.foo, t1.bar FROM FIRST_TABLE t0 RIGHT OUTER JOIN SECOND_TABLE t1;
Oracle рекомендует использовать синтаксис внешнего соединения предложения FROM, а не Oracle присоединиться к оператору. Внешние запросы соединения, использующие оператор Oracle join ( + ), подчиняются следующим правилам и ограничениям [...]