有人在群里问关于SQL表组合数据问题

他的问题如下

如此我建表如下:

如果想根据用户进行分组后 又要显示所属门店在同一个字段中的话,这里需要用group_concat来显示 同时关联的时候可用find_in_set来处理

我设计的SQL如下:

select vname,group_concat(name)as name,total_sum from vip 
left join (
    select vipid,group_concat(storeid) as store_id,sum(paidin) as total_sum from `order` group by vipid
) as t 
on vip.id=t.vipid  
left  join store 
on find_in_set(store.id,t.store_id) group by vname;

效果如图:

虽然说有点令人不可思议,不过SQL就是这么神奇,令人称道啊,哈哈哈!

后来 他又整一列出来,净出幺蛾子,要求这样

我想到刚刚的方式不能那样做了,看来要改一个方式得到

复制代码
select t.vname,t.name,GROUP_CONCAT(store.`name`),t.total_sum from store left JOIN
(
    select storeid,vname,name,store_id,total_sum from vip 
    left join store on vip.storeid=store.id
    left join 
    (
        select vipid,group_concat(storeid) as store_id,sum(paidin) as total_sum from `order` group by vipid
    ) as tmp on .tmp.vipid=vip.id
) as t
on find_in_set(store.id,t.store_id)
group by t.storeid,t.vname;
复制代码

效果如图:

 

posted @   李照耀  阅读(172)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2017-03-07 转正总结
2016-03-07 PHP如何取出数组最后一个元素?
点击右上角即可分享
微信分享提示