mysql连多个表group_mysql – 表连接多个group_concat

关于使用group_concat连接表有问题.这是详细信息.

table_orders:

item_cd order_id descs quantity status seq_no

1 100 coca-cola 2 A 232

2 100 pizza 1 A 233

3 101 cheeseburger 5 A 234

4 102 pepsi 4 A 235

4

table_instructions:

item_cd instruction

3 more cheese

3 less vegetable

cancelled_item_table:

quantity seq_no

1 234

1 234

1 235

现在我想要实现的是这样的:

item_cd descs quantity instructions cancelled_item

1 coca-cola 2 - -

2 pizza 1 - -

3 cheeseburger 2 more cheese, less vegetable 1,1

4 pepsi 4 - 1

这是我目前的查询:

SELECT

ord.item_cd,

ord.order_id,

ord.descs,

ord.quantity,

GROUP_CONCAT(x.quantity) as cancelled,

GROUP_CONCAT(i.instruction) as instruct

FROM table_orders ord

LEFT JOIN cancelled_item_table x ON ord.seq_no = x.seq_no

LEFT JOIN table_instructions i ON ord.item_cd = i.item_cd

WHERE ord.status = 'A'

GROUP BY ord.order_id

这是输出:

item_cd descs quantity instructions cancelled_item

1 coca-cola 2 - 1

2 pizza 1 - 1

3 cheeseburger 2 more cheese, more cheese,

less vegetable, less vegetable 1,1,1,1

4 pepsi 4 - 1

如果你注意到,芝士汉堡有2个取消的项目和2个指令,但输出是4,看起来它正在成倍增加.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值