作者grence (多想两分钟 = =")
看板Database
标题Re: [SQL ] 请教 JOIN 的问题
时间Tue May 6 12:22:57 2008
※ 引述《silver8250 ((阿信))》之铭言:
: 各位先进,小弟对於 JOIN 有个小小的问题
: 平台:M$ SQL 2K
: 如果说我的 table A and table B 如下:
: table A : PK->ID
: ID name money
: ---------------
: AA abc 10
: BB bcd 20
: table B : PK -> ID
: ID b_money
: ------------
: AA 30
: CC 20
: 我希望的结果是:
: ID name money b_money
: --------------------------
: AA abc 10 30
: BB bcd 20 NULL
: CC NULL NULL 20
: 我知道可以用 A FULL JOIN B ON (A.ID = B.ID)
: 可是出来的结果 ID 为 CC 的那笔资料会不见??
乍看之下很困惑,怎麽可能会不见…实际跑一下…
declare @a table(id char(2),[name] char(4),[money]int)
declare @b table(id char(2),[b_money]int)
insert @a values('aa','abc',20)
insert @a values('bb','bca',30)
insert @b values('aa',40)
insert @b values('cc',50)
select *
from @a a
full join @b b on a.id=b.id
结果
aa abc 20 aa 40
bb bca 30 NULL NULL
NULL NULL NULL cc 50
哦…是cc这个id没对到吗?是的话,这样就搞定了吧
select isnull(a.id,b.id)theid,name,money,b_money
from @a a
full join @b b on a.id=b.id
: 是因为 ID 在 table A and table B 为 PK 的关系吗??
: 我要怎样才能取出我想要的结果??
: 感谢各位先进的帮忙~~ 可能小弟思考上有盲点!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.172.157
1F:推 silver8250:感谢您热心的回答!! 05/06 16:35