MySQL数据库查询多行合并的问题
来源:互联网 发布:站长工具端口 编辑:程序博客网 时间:2024/05/01 08:49
有这样一个场景,用户把多样商品放入了购物车,每一样商品数量也不同,然后去购物车挑选最终合适的商品买单,最终这个订单就包含了多样商品。最近写项目就遇到这样一个需求,根据订单id查询订单详情,详情包括订单号,下单时间,商品名称,商品数量。需要显示在同一条记录上。
这里涉及到三张表关联:订单表(order),主要字段有:id(订单id),ordersn(订单编号),createtime(下单时间);订单商品表(order_goods),主要字段有:orderid(订单id),goodsid(商品id),total(购买数量);还有商品表(goods),主要字段有:id(商品id),title(商品名称);
由于字段太多,我只截了一部分。
在MySQL中有group_concat()这样一个函数,完整的语法是:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
根据我项目的需求,我要查询订单id为78的订单详情,多个商品用”;”分开,解决方案的SQL语句是:
select FROM_UNIXTIME(o.createtime) '下单时间',o.ordersn '订单号',group_concat(g.title separator ' ; ') '商品名称',group_concat(og.total separator ' ; ') '商品数量' from goods as g,order_goods as og,order as o where og.goodsid = g.id and og.orderid = 78 and o.id = 78;
FROM_UNIXTIME(unix_timestamp,format)是MySQL里的时间函数,unix_timestamp可以是字段名,也可以直接是Unix 时间戳,format主要是将返回值格式化。
查询结果是:
0 0
- MySQL数据库查询多行合并的问题
- mysql数据库合并问题
- 数据库查询给定字段的多行记录的合并
- mysql 多表合并查询
- mysql 多表合并查询
- MySQL 一对多查询,合并多的一方的信息
- 多个数据库操作的事物合并配置+mysql数据库
- mysql+hibernate数据库查询问题
- MySQL 数据库的查询
- MySQL 数据库的查询
- mysql数据库中把查询的结果列合并(GROUP_CONCAT)
- mysql中的多行查询结果合并成一个
- mysql:多行查询结果合并成一行
- mysql中的多行查询结果合并成一个
- mysql实现多行查询结果合并成一行
- mysql中的多行查询结果合并成一个
- mysql中的多行查询结果合并成一个
- Mysql多对多查询、列合并
- 修改文件 访问(access)、修改(modify)、改变(change)时间
- 文章标题
- 当表单中中只有一个文本框类型的的input
- 1008 QSC and Master (区间dp)
- 不同语言正则表达式使用小例
- MySQL数据库查询多行合并的问题
- NAT123内网转发LINUX环境开机自动启动防掉线脚本
- jsp总结之九大内置对象
- 指针和字符的初始化
- pcap文件格式分析
- java内存模型
- 文章标题
- 怀念以前,珍惜现在,憧憬未来
- 5.Kth Largest Element-第k大元素(中等题)