Синтаксис SQL для объединения двух таблиц? - PullRequest
1 голос
/ 18 мая 2011

У меня есть две таблицы, которые я хотел бы объединить следующим образом.

Таблица a:

columns :a1     a2
data    :aaa    a2
         bbb    b2

Таблица b:

columns :a1     b2
data    :aaa    a3
         ccc    c3

Окончательная таблица желаемых результатовбудет включать следующее:

Таблица окончательная:

columns :a1     a2    b2
data    :aaa    a2    a3
         bbb    b2
         ccc          c3

Ответы [ 5 ]

3 голосов
/ 18 мая 2011
SELECT
       a.a1, a.a2, b.b2
FROM 
       a 
FULL JOIN 
       b ON a.a1 = b.a1
1 голос
/ 18 мая 2011
-- Test data
with TableA(a1, a2) as
(
  select 'aaa', 'a1' union all
  select 'bbb', 'b2'
),
TableB(a1, b2) as
(
  select 'aaa', 'a3' union all
  select 'ccc', 'c3'
)


select
  coalesce(A.a1, B.A1) as a1,
  A.a2,
  B.b2
from TableA as A
  full outer join TableB as B
    on A.a1 = B.a1

Результат:

a1   a2   b2
---- ---- ----
aaa  a1   a3
ccc  NULL c3
bbb  b2   NULL
0 голосов
/ 18 мая 2011

Это должно быть то, что вы ищете:

SELECT
       ISNULL(a.a1, b.a1) AS a1, a.a2, b.b2
FROM 
       a 
FULL OUTER JOIN 
       b ON a.a1 = b.a1

Для получения дополнительной информации о внешних соединениях в целом см .: http://msdn.microsoft.com/en-us/library/ms187518.aspx

0 голосов
/ 18 мая 2011
SELECT a.a1, a.a2, b.b2
INTO NewTable
FROM a,b
Where b.a1=a.a1
0 голосов
/ 18 мая 2011

Вам нужно JOIN две таблицы с чем-то вроде

SELECT a.a1, a.a2, b.b2 FROM table_a a 
JOIN table_b b ON a.a1 = b.a1

В зависимости от того, что вам нужно, вам может понадобиться lEFT JOIN (иногда называемый OUTER JOIN). Фактический синтаксис также зависит от того, какую базу данных вы используете. Этот пример будет работать на MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...