sql语句嵌套子查询拼接结果问题

有一个运单表,和一个运单箱号表,关联关系为运单id=运单箱号waybill_table_id
是一对多的关系
我去查询运单表中的内容,想关联运单箱号表,把从属于本运单的箱号用逗号拼接
select *
from (
select wt.order_no orderNo,
wt.waybill_no,
wt.start_local_name,
wt.goal_local_name,
wt.goods_name,
wt.receive_goods_date,
wt.consignee,
wt.consignee_company_name,
wt.consignee_tel,
wt.transport_way,
CONCAT((select CONCAT(wtb.box_number, wtb.seal_number) from waybill_table_box wtb where wtb.waybill_table_id = wt.id))
from waybill_table wt
where wt.status in ("40","50","60")
and wt.sender_company_id = 'be34b2a4-9f2e-11e6-a4c3-8ac645034345'
and wt.sender_organization_id in ('0683ce64-9f2f-11e6-a4c3-8ac645034345'))waybill
where waybill.orderNo like '%DD%'
目前达到的结果,是错误的sql语句,Subquery returns more than 1 row,
想要将子select语句查询出来的多条数据合并,各位有好的解决办法不

2个回答

select * from waybill_table left join waybill_table_box on waybill_table.id=waybill_table_box.id
and status in ("40","50","60")
and sender_company_id = 'be34b2a4-9f2e-11e6-a4c3-8ac645034345'
and sender_organization_id in ('0683ce64-9f2f-11e6-a4c3-8ac645034345')
and orderNo like '%DD%'

感谢你的回答,但是仅仅是left join,处理一对多的关系的时候,会有重复的数据,例如员工角色对应多个人,查询结果就是:员工:A,员工:B,员工:C
我想要的结果是:员工:A,B,C,可能是我没有描述清楚

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐