Re: [SQL ] 多表單關聯...
資料表關聯部份如下圖:
+=>平台
+=>訂單-+
明細-+ +=>客戶
+=>商品
至於底下的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
Database 近期熱門文章
PTT數位生活區 即時熱門文章