将两列合并为一列,其余显示与两个不同的表不同

时间:2012-08-16 09:37:46

标签: sql

我有两张桌子A&乙

表A包含xy列,B包含xz列。

表A

X       y
---------
aa      1
bb      2
cc      3
dd      4

表B

x    z
------
aa   5
ee   6
dd   7
ff   8

我希望结果是这样的:

结果

x      y       z
----------------
aa     1       5
bb     2       
cc     3    
dd     4       7
ee             6
ff             8

你能帮忙解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

如果您使用的是SQL Server,请尝试以下方法:

Select COALESCE(A.x,B.x),Y,Z 
FROM TableA A FULL OUTER JOIN TableB B
ON A.X = B.X

See this SQLFiddle

如果您使用的是MySQL,请尝试:

Select COALESCE(A.X,B.X),Y,Z from TableA A 
Left join TableB B on A.X = B.X
UNION
Select COALESCE(A.X,B.X),Y,Z from TableA A 
RIGHT join TableB B on A.X = B.X

See this SQLFiddle

答案 1 :(得分:1)

试试这个:

select COALESCE(A.x,B.x),y,z
 from TableA A full outer join tableB B
on A.X=B.X


SQL Fiddle demo

答案 2 :(得分:0)

您可能需要在键X上连接表A和B.

Select A.X, A.Y, B.Z From A full outer join B on A.X = B.X

阅读有关SQL中的连接的更多信息:http://en.wikipedia.org/wiki/Join_%28SQL%29