我有兩個表我想合併如下。SQL語法合併兩個表?
表一:
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
我有兩個表我想合併如下。SQL語法合併兩個表?
表一:
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
SELECT
a.a1, a.a2, b.b2
FROM
a
FULL JOIN
b ON a.a1 = b.a1
它有時被稱爲'FULL OUTER JOIN'。閱讀您的DBMS的文檔。 – 2011-05-18 08:09:47
你需要的東西來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上工作。
-- 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
SELECT a.a1, a.a2, b.b2
INTO NewTable
FROM a,b
Where b.a1=a.a1
請不要使用「舊式」的遺產由剛剛列舉的表在FROM子句連接 - 你應該切換到使用正確的ANSI JOIN語法 - '從INNER JOIN B關於......' – 2011-05-18 09:02:17
這個例子就當記錄都在一個表中的情況下出現故障而不是其他諸如BBB和CCC的例子在OP得出的,因此只返回一個記錄{AAA,A2,A3} – Seph 2011-05-18 09:09:10
這應該是你在找什麼:
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
什麼數據庫? ?什麼版本?哪些數據類型是你的列?你想要加入兩個表? – 2011-05-18 08:07:03