Re: [SQL ] 多表單關聯...

看板Database (資料庫)作者 (寶貝豬)時間17年前 (2009/02/12 04:10), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
資料表關聯部份如下圖: +=>平台 +=>訂單-+ 明細-+ +=>客戶 +=>商品 至於底下的SQL, 沒有測試資料證實, 僅供參考, 或許有錯也不一定. 總之, 就是利用left join聯結相關資料表的觀念, 以及group by做 數量統計. 這裏是透過子查詢建立暫用資料表來分別統計訂購總人數 及訂購數量, 最後由商品以left join做匯編. 其實也未必要寫得如此複雜. 如果分開用數次sql查詢得到結果, 再用 外部程式暫存, 最後再由外部程式匯編結果亦可. select 商品.編號,商品.名稱,訂購總人數,訂購數量 from 商品 left join ( select 明細.商品id,count(訂單.客戶id) as 訂購總人數 from 平台 left join 訂單 on 訂單.平台id = 平台.id left join 明細 on 明細.訂單id = 訂單.id where 平台.名稱='指定名稱' group by 明細.商品id ) as subt1 on subt1.商品id = 商品.id left join ( select 明細.商品id as product_id,sum(明細.數量) as 訂購數量 from 平台 left join 訂單 on 訂單.平台id = 平台.id left join 明細 on 明細.訂單id = 訂單.id where 平台.名稱='指定名稱' group by 明細.商品id ) as subt2 on subt2.商品id = 商品.id ※ 引述《ankolee99 (哈哈米)》之銘言: : 因為第一次寫多表單關聯... : 所以有點搞混了...希望高手幫忙一下 : 資料表如下: : 平台清單    客戶訂單 : 編號 平台   訂單編號 客戶名稱   購買平台 : ------ ---------------------- : 1 A 1     Tom     A : 2   B    2     Mary    B  : .. .. .. ....... .. : 商品清單 訂單明細(假設都只有一筆) : 編號 名稱 訂單編號 訂購物品 : ------   -------------- : 1 蘋果 1 西瓜 : 2 香蕉   1       蘋果 : 3 西瓜 2 香蕉 : .. .. 2 蘋果 : 我想要關聯的內容為: : 指定某個平台,列出所有商品清單中的訂貨總人數,訂購數量 : 例如:現在指定A平台。 : 編號 名稱 訂購總人數 訂購數量 : ----------------------- : 1 蘋果 2 2 : 2 香蕉 1 1 : 3 西瓜 1 1 : 這樣的話,SQL語法要怎麼去關聯...因為好像要關聯到三個以上我就不太會了... : 謝謝指教 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.193.210
文章代碼(AID): #19ap3G45 (Database)
文章代碼(AID): #19ap3G45 (Database)