原生mysql多对多关联问题

原生mysql多对多关联问题

想把car_long拼接到一起怎么实现,循环掠过
2.8 5 这样

select a.id,b.cargo_name,c.city_start,c.city_end,d.car_long,e.car_model,a.price_type,a.freight,a.created_at from deliver_goods as a 
                                ,deliver_goods_cargos_info as b
                ,deliver_goods_addresses as c
                ,deliver_goods_cars_long as d
                ,deliver_goods_cars_model as e
                                WHERE b.goods_id = a.id
                                AND c.goods_id = a.id
                                AND d.goods_id = a.id
                                AND e.goods_id = a.id
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 5

按id分组,使用group_concat组合拼接:

group_concat(d.car_long, ","),
1年前 评论
王大牛 (楼主) 1年前
王大牛 (楼主) 1年前

你要把多行的数据放在一起 就只能group by

1年前 评论

select a.id,b.cargo_name,c.city_start,c.city_end,d.car_long,e.car_model
    ,a.price_type,a.freight,a.created_at 
from deliver_goods as a
    left join deliver_goods_cargos_info as b ON b.goods_id = a.id
    left join deliver_goods_addresses as c ON c.goods_id = a.id
    left join (
        select a.id,group_concat(d.car_long, ",") car_long
        from deliver_goods as a
            left join deliver_goods_cars_long as d ON d.goods_id = a.id
        group by a.id
        -- where a 表条件
    ) as d ON d.id = a.id
    left join deliver_goods_cars_model as e ON e.goods_id = a.id

试试看是否 可以

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!