В Oracle (+) позначає таблицю "необов'язково" в ПРИЄДНАЙТЕСІ. Отже, у вашому запиті,
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a,b
WHERE a.id=b.id(+)
це ЛІВНІШЕ ВІДПРИЄМСТВО таблиці "b" до таблиці "a". Він поверне всі дані таблиці 'a', не втрачаючи своїх даних, коли інша сторона (опціональна таблиця 'b') не має даних.
Сучасний стандартний синтаксис для того ж запиту був би
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
LEFT JOIN b ON a.id=b.id
або зі скороченням a.id=b.id
(не підтримується всіма базами даних):
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
LEFT JOIN b USING(id)
Якщо ви видалите (+), це буде нормальним внутрішнім запитом приєднання
Старіший синтаксис як у Oracle, так і в інших базах даних:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a,b
WHERE a.id=b.id
Більш сучасний синтаксис:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
INNER JOIN b ON a.id=b.id
Або просто:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
JOIN b ON a.id=b.id
Він поверне всі дані лише тоді, коли значення 'id' та 'b' таблиці 'id' однакове, означає загальну частину.
Якщо ви хочете зробити свій запит правильним приєднанням
Це точно так само, як LEFT JOIN, але перемикає таблицю необов'язково.
Старий синтаксис Oracle:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a,b
WHERE a.id(+)=b.id
Сучасний стандартний синтаксис:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
RIGHT JOIN b ON a.id=b.id
Довідка та допомога:
https://asktom.oracle.com/pls/asktom/f?p=100:11::::::P11_QUESTION_ID:6585774577187
Залишилося Зовнішнє приєднання, використовуючи + увійти в Oracle 11г
https://www.w3schools.com/sql/sql_join_left.asp