Объединение двух наборов результатов SQL SELECT в один - PullRequest
28 голосов
/ 23 февраля 2010

У меня есть 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

Ответы [ 3 ]

43 голосов
/ 23 февраля 2010

Используйте 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.

4 голосов
/ 23 февраля 2010

Использовать ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ:

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
2 голосов
/ 23 февраля 2010
SELECT table1.col_a, table1.col_b, table2.col_c 
  FROM table1 
  INNER JOIN table2 ON table1.col_a = table2.col_a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...