iT邦幫忙

0

SQL語法問題,請大大們協助

如何呈現如圖檔,感謝大大
試了許久都重覆資料內容,煩請各位協助指導

SELECT a.qqq,a.ww,,b.rrr,b.zzz,c.ttt,c.yyy,c.uuu,d.ooo,d.III,e.aaa,e.sss
FROM [a] a,[b] b,[c] c,[d] d,[e] e
where a.aid=b.bid
and c.cid=d.did
??

1 個回答

6
i80091
iT邦新手 4 級 ‧ 2012-09-14 16:41:51

SQL 如果不指定 join 方式,依條件會做 CrossJoin,也就是A表的所有紀錄{乘於}B表的所有紀錄,如果要達到一對一的輸出,請指定 Inner Join

方式一:
SELECT a.qqq,a.ww,,b.rrr,b.zzz,c.ttt,c.yyy,c.uuu,d.ooo,d.III,e.aaa,e.sss
FROM [a] a,[b] b,[c] c,[d] d,[e] e
where a.aid=b.bid and b.bid =c.cid and c.cid=d.did d.did=e.eid

方式二:
SELECT a.qqq,a.ww,,b.rrr,b.zzz,c.ttt,c.yyy,c.uuu,d.ooo,d.III,e.aaa,e.sss
FROM [a] a Inner Join [b] b on a.aid=b.bid
inner join [c] c on b.bid =c.cid
inner join [d] d on c.cid=d.did
inner join [e] e on d.did=e.eid

pengchti iT邦新手 5 級 ‧ 2012-09-17 10:49:41 檢舉

感謝i80091的回覆,但我遇到另一個問題
若在A資料對應B資料表,但我需取B資料表的另二個欄位的值我要如何分別取出

A資料表 B資料表 要如何取值變成
A B C A B C A B C
1 AA 1 -1 -3 1 AA CC
2 BB 2 -2 2 BB
3 CC 3 -3 3 CC
4 DD 4 -1 -4 4 AA DD

pengchti iT邦新手 5 級 ‧ 2012-09-17 10:55:22 檢舉

A資料表
A B C
1 AA
2 BB
3 CC
4 DD

B資料表
A B C
1 -1 -3
2 -2
3 -3
4 -1 -4

要如何取值變成
A B C
1 AA CC
2 BB
3 CC
4 AA DD

感謝您

i80091 iT邦新手 4 級 ‧ 2013-06-17 11:14:07 檢舉

對不起,這麼晚才回答你!
我不太理解您的問題,你是指要將 B 表的內容改用 A 表的值來替代嗎?看你第二份說明,好像是 B表的 -1 就用 表的 AA, -2 就用 A表的BB, ...來代替嗎?
如果是這樣,就不能只用join 方式,而是要用多重 Select
Select B.A, (Select B From A,B Where A.A=ABS(B.B)) B, (Select B From A, B Where A.A=ABS(B.C)) C From B

我要發表回答

立即登入回答