Краткое сравнение Oracle SQL и ANSI SQL Страница 7. Внешние соединения
|
Страница 7 из 8 Внешние соединения В ANSI SQL внешние объединения реализованы посредством расширенной формы предложения FROM: SELECT * FROM tab1 FULL JOIN tab2 ON col1=col2 - полное внешнее объединение SELECT * FROM tab1 LEFT JOIN tab2 ON col1=col2 - полное левое объединение SELECT * FROM tab1 RIGHT JOIN tab2 ON col1=col2 - полное правое объединение
В Oracle не реализовано расширенное предложение FROM для реализации внешних соединений (начальный уровень ANSI SQL этого не требует) как это сделано в ANSI. Однако реализован свой собственный синтаксис для получения левых и правых внешних объединений. Полные внешние объединения в Oracle не реализованы. Для реализации левого внешнего объединения используется оператор (+) в предложении WHERE, который ставиться справа от столбца, по которому осуществляется соединение, справа от знака =. Аналогично для правого объединения оператор (+) ставиться справа от столбца слева от знака равенства. SELECT * FROM tab1 LEFT JOIN tab2 ON col1=col2 - аналогичен запросу: SELECT * FROM tab,tab2 WHERE col1=col2 (+)
SELECT * FROM tab1 RIGHT JOIN tab2 ON col1=col2 - аналогичен запросу: SELECT * FROM tab,tab2 WHERE col1 (+)=col2
|