【问题标题】:MySQL Grouping results [duplicate]MySQL分组结果[重复]
【发布时间】:2020-10-04 13:15:56
【问题描述】:

我的桌子

Table function
id function users
-----------------
1  f1       1,2
2  f2       2,3
3  f1       4,5
4  f2

Table users
id name
-------
1  Mark
2  Louis
3  John
4  Denver
5  Nat

我需要编写一个产生以下结果的查询:

 f1, Mark, Louis
 f2, Louis, John
 f1, Denver, Nat
 f2

感谢您的帮助,请原谅我糟糕的英语。

【问题讨论】:

    标签: mysql sql string csv left-join


    【解决方案1】:

    这是使用find_in_set()group_concat() 的一个选项:

    select f.function, group_concat(u.name order by find_in_set(u.id, f.users)) user_names
    from `function` f
    left join users u on find_in_set(u.id, f.users)
    group by f.id
    

    注意事项:

    Demo on DB Fiddle

    功能 |用户名 :------- | :--------- f1 |马克,路易斯 f2 |路易斯,约翰 f1 |丹佛,纳特 f2 |

    【讨论】:

    • 你又一次帮了我很多忙。非常感谢GMB的帮助和解释!!!
    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 2011-01-22
    • 1970-01-01
    相关资源
    最近更新 更多