Ответ 1
Да, это означает правильное соединение. если бы выражение было как... где Tabel1.Attr(+) = Tabel2.Attr, его нужно оставить в стороне.
У меня есть SQL-запрос примерно так: -
Select Table1.attr1, Table1.attr2, Table2.attr3, Table2.attr4
From Tab1 Tabel1, Tab2 Tabel2
Where Tabel1.Attr = Tabel2.Attr (+)
Итак, что означает вышеизложенное? Является ли это правильным внешним соединением?
Да, это означает правильное соединение. если бы выражение было как... где Tabel1.Attr(+) = Tabel2.Attr, его нужно оставить в стороне.
Вы правы, + является правильным соединением
Я думаю, что это ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ (хотя в утвержденном ответе говорится, что ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ). Из документации 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;