Как использовать join для трех таблиц

#oracle

#Oracle

Вопрос:

У меня есть три таблицы

Таблица1, Таблица2 и Таблица3.

Таблица 1 с идентификатором столбца. Таблица 2, имеющая имена столбцов ID, Name. Третья таблица, имеющая имя столбца Name.

Теперь я хочу восстановить идентификатор из таблицы1, который есть в Таблице2, с помощью, чтобы имя, связанное с идентификатором в таблице to, было в Таблице3.

Table1.ID=Table2.ID (Table2.Name=Table3.Namw).

Без использования оператора IN.Только объединения.

Ответ №1:

 select table1.id, table2.name
from table1
join table2 on table2.id = table1.id
join table3 on table3.name = table2.name
  

Ответ №2:

 select distinct t1.ID
from Table1 t1
    ,Table2 t2
    ,Table3 t3
where t1.ID = t2.ID
  and t2.Name = t3.Name
;
  

или

 select t1.ID
from Table1 t1
where exists (
  select 1
  from Table2 t2
      ,Table3 t3
  where t1.ID = t2.ID
    and t2.Name = t3.Name
);