Подтвердить что ты не робот

Что означает оператор (+) в where-clause PL/SQL?

У меня есть SQL-запрос примерно так: -

Select Table1.attr1, Table1.attr2, Table2.attr3, Table2.attr4
From Tab1 Tabel1, Tab2 Tabel2
Where Tabel1.Attr = Tabel2.Attr (+)

Итак, что означает вышеизложенное? Является ли это правильным внешним соединением?

4b9b3361

Ответ 1

Да, это означает правильное соединение. если бы выражение было как... где Tabel1.Attr(+) = Tabel2.Attr, его нужно оставить в стороне.

Ответ 2

Вы правы, + является правильным соединением

Ответ 3

Я думаю, что это ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ (хотя в утвержденном ответе говорится, что ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ). Из документации Oracle:

Using Outer Joins: Examples

SELECT d.department_id, e.last_name
   FROM departments d LEFT OUTER JOIN employees e
   ON d.department_id = e.department_id
   ORDER BY d.department_id;


Users familiar with the traditional Oracle Database outer
joins syntax will recognize the same query in this form:

SELECT d.department_id, e.last_name
   FROM departments d, employees e
   WHERE d.department_id = e.department_id (+)
   ORDER BY d.department_id;

Для ПРАВИЛЬНОГО НАРУЖНОГО СОЕДИНЕНИЯ вы ставите знак (+) перед знаком =, например.

SELECT d.department_id, e.last_name
   FROM departments d, employees e
   WHERE d.department_id (+) = e.department_id
   ORDER BY d.department_id;