как сопоставить два столбца в соединении с помощью третьей таблицы «сопоставления»

#sql

#sql

Вопрос:

Я пытаюсь выполнить VLOOKUP, например, join в sql.

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

dest_table: destination_test_name | des_string_result

target_table: введите описание изображения здесь

map_table: введите описание изображения здесь

Требуемый результат: введите описание изображения здесь

Ответ №1:

Да, вы можете сделать это с помощью объединений.

 select 
    destination_test_name,
    des_string_result,
    target_test_name,
    target_string_result
from 
    map_table 
    inner join dest_table using(destination_test_name)
    inner join target_table using(target_test_name);
  

Ответ №2:

 select d.destination_test_name, des_string_result, m.target_test_name, t.target_string_result 
from dest_table as d
inner join map_table as m
on m.destination_test_name = d.destination_test_name
inner join target_table as t
on t.target_test_name = m.target_test_name
  

Ответ №3:

Пожалуйста, используйте приведенный ниже запрос с внешним соединением :

 select 
    MT.destination_test_name,
    DT.des_string_result,
    MT.target_test_name,
    TT.target_string_result
from 
    map_table MT
    left outer join dest_table DT on MT.destination_test_name = DT.destination_test_name
    left outer join target_table TT on MT.destination_test_name = TT.target_test_name;