开发者

SQL syntax to merge two tables?

开发者 https://www.devze.com 2023-03-06 12:41 出处:网络
I have two tables I would like to merge as follows. Table a: columns :a1a2 data:aaaa2 bb开发者_如何学Pythonbb2

I have two tables I would like to merge as follows.

Table a:

columns :a1     a2
data    :aaa    a2
         bb开发者_如何学Pythonb    b2

Table b:

columns :a1     b2
data    :aaa    a3
         ccc    c3

The final desired output table would include the following:

Table final:

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


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


-- 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

Result:

a1   a2   b2
---- ---- ----
aaa  a1   a3
ccc  NULL c3
bbb  b2   NULL


You need toJOIN the two tables with something like

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

Depending on what you need, you may need a lEFT JOIN (sometimes called an OUTER JOIN). The actual syntax also depends on what database you are using. This example will work on MySQL.


SELECT a.a1, a.a2, b.b2
INTO NewTable
FROM a,b
Where b.a1=a.a1


This should be what you are looking for:

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

For more info on Outer Joins in general see: http://msdn.microsoft.com/en-us/library/ms187518.aspx

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号