Объединение двух наборов результатов SQL SELECT в один
У меня есть 2 оператора выбора, возвращающие данные, как это:
Select 1
col_a col_b
Select 2
col_a col_c
Если я сделаю союз, я получу что-то вроде
col_a col_b
И ряды соединились. Что мне нужно, так это получить:
col_a col_b col_c
Регистрация данных в col_a
Ответы
Ответ 1
Используйте JOIN для присоединения к подзапросам и используйте ON, чтобы указать, где должны соответствовать строки из каждого подзапроса:
SELECT T1.col_a, T1.col_b, T2.col_c
FROM (SELECT col_a, col_b, ...etc...) AS T1
JOIN (SELECT col_a, col_c, ...etc...) AS T2
ON T1.col_a = T2.col_a
Если есть несколько значений col_a, которые находятся в T1, но не в T2, вместо этого вы можете использовать LEFT OUTER JOIN.
Ответ 2
Используйте ПОЛНУЮ ВНУТРЕННУЮ РАБОТУ:
select
a.col_a,
a.col_b,
b.col_c
from
(select col_a,col_bfrom tab1) a
join
(select col_a,col_cfrom tab2) b
on a.col_a= b.col_a
Ответ 3
SELECT table1.col_a, table1.col_b, table2.col_c
FROM table1
INNER JOIN table2 ON table1.col_a = table2.col_a