原生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
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

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

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

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

2年前 评论

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

试试看是否 可以

2年前 评论

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