2 susan9521 susan9521 于 2016.04.20 10:10 提问

订单列表查询SQL,查询出订单的数量和订单详细信息(包括订单中的所有商品)

一对多关系的数据,比如订单和订单商品,要一起显示订单和其商品信息,怎么样查询最优

就像淘宝一样,每个订单(order表)对应多个商品(order_item表)时,查询订单信息必须把该订单的商品主要信息也显示出来。

3个回答

fk002008
fk002008   2016.04.20 10:33
已采纳

使用连接进行查询。
有订单肯定就有商品了

涉及到三张表
订单表
订单商品表
商品表
select * from (
select 订单.*,订单商品.* from 订单 left join 订单商品 on 订单.订单号 = 订单商品.订单号
) t1 left join

( select 订单商品.订单号,订单商品.商品id ,商品.* from 订单商品 left join 商品 on 订单商品id = 商品 id) t2
on t1.订单号 = t2.订单号
and t1.商品id = t2.商品id

qq_24618521
qq_24618521 回复lambda-fk: 订单.* 是 order_table.* 吗
2 个月之前 回复
qq_24618521
qq_24618521 回复lambda-fk: 我试了一下,查到的是空数组
2 个月之前 回复
fk002008
fk002008 好了,这下会了吧
一年多之前 回复
susan9521
susan9521 好了吗?
一年多之前 回复
susan9521
susan9521 回复lambda-fk: 怎么采用我不大会弄
一年多之前 回复
fk002008
fk002008 那就采用下回答呗,我好拿一个金币,哈哈
一年多之前 回复
susan9521
susan9521 懂了 谢谢
一年多之前 回复
fk002008
fk002008 当然你也可以使用oracle的分析函数,这个比较复杂,不是很擅长。
一年多之前 回复
fk002008
fk002008 (select * from xxxxx) union (select (select '订单数量' from dual) 订单数量,(select count(订单.*) from xxx) 订单数量 from dual
一年多之前 回复
fk002008
fk002008 回复susan9521: 要统计这个数量明显和上面的结果集列不相符合 所以采用这个并集概念 。上面的查询结果作为一个结果集合 然后 union 你在统计订单数量 ,注意凑够列就行了 可以使用汉字等
一年多之前 回复
susan9521
susan9521 同时统计订单数量该怎么统计?
一年多之前 回复
beau_lily
beau_lily   2016.04.20 10:31

不存在什么最优的查询 这要看你的数据量了
订单是一张表 订单表关联商品信息表
用个链接查询就好

qq_17486399
qq_17486399   2016.04.20 10:34

就是一个连接查询。楼上的正解啊

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!