看板 Database 關於我們 聯絡資訊
※ 引述《averywu (看文不要只會用橫的看)》之銘言: : A TABLE : ID SID PRICE GID : ---------------------------- : 1 1 100 2 : 2 1 110 2 : 3 1 130 2 : B TABLE : ID SID PRICE GID : ---------------------------- : 1 1 20 2 : 2 1 30 2 : 3 1 33 2 : select a.*,b.* from a,b where a.SID = 1 AND b.SID = 1 : 為什麼會跑出9筆啊 Orz... : 要怎樣才有下列結果 : ID SID APRICE BPRICE GID : ---------------------------------- : 1 1 100 20 2 : 2 1 110 30 2 : 3 1 130 33 2 : 還是乾脆合併二個TABLE重做算了?因為這二個TABLE又要對應到另二個TABLE : (SID ﹠ GID) 把語法內含的 JOIN 全部寫出來就清楚了 SELECT a.`ID`, a.`SID`, a.`PRICE` AS `APRICE`, b.`PRICE` AS `BPRICE`, a.`GID` FROM a LEFT JOIN b ON a.`ID` = b.`ID` AND a.`SID` = b.`SID` AND a.`GID` = b.`GID` WHERE a.`SID` = 1 不過可能有問題的是: 1. ID, SID, GID 都要一樣嗎? 如果 SID,GID 一樣, ID不同的話要如何顯示(AID, BID)? 2. 如果有些 SID, GID 的組合 A 有 B 沒有, 或是 B 有 A 沒有的話要如何顯示, null? 3. 如果 1 成立, 2 不會發生的話, A 和 B 應該放同一張表? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.93.105.54 ※ 編輯: danielguo 來自: 71.93.105.54 (03/24 17:18)
averywu:原本不想拆的,可是B的資料很少,所以...想拼回去了 Orz.. 03/25 00:51