日期:2014-05-19  浏览次数:20593 次

求教一条有点难的SQL语句。
表A
ID1   ID2 Num1
1 2 3
1 4 5
1 3 6

表B
ID1   ID2 Num2
1 3 7

表C
ID1   ID2 Num3
1 3 8
1 4 2

表A、表B、表C的关键字都是ID1和ID2。

得到结果:
ID1 ID2 Num1 Num2 Num3
1 2 3
1 4 5 2
1 3 6 7 8

------解决方案--------------------
select a.id1,a.id2,num1,num2,num3 from A Left Join B on a.id1=b.id1 and a.id2=b.id2 Left Join C on a.id1=c.id1 and a.id2=c.id2
------解决方案--------------------
慢了
------解决方案--------------------
樓主的舉例不正確,不過你的要求應該是要改用Full Join來實現。

稍稍修改即可

Select
Coalesce(A.ID1, B.ID1, C.ID1) As ID1,
Coalesce(A.ID2, B.ID2, C.ID2) As ID2,
Num1,
Num2,
Num3
From
A
Full Join
B
On
A.ID1 = B.ID1 And A.ID2 = B.ID2
Full Join
C
On
A.ID1 = C.ID1 And A.ID2 = C.ID2