作者bobju (宝贝猪)
看板Database
标题Re: [SQL ] 多表单关联...
时间Thu Feb 12 04:10:53 2009
资料表关联部份如下图:
+=>平台
+=>订单-+
明细-+ +=>客户
+=>商品
至於底下的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