【问题标题】:Select query with GROUP_CONCAT in mysql在 mysql 中使用 GROUP_CONCAT 选择查询
【发布时间】:2017-01-04 13:00:26
【问题描述】:

我有两张表是这样的。

用户

id       name
10       dani
 9       mark
 8       himel
 7       dipu

config_project

id    assignee_web  assignee_app  assignee_qa
29       10,7,9       10,7          10,9
28        10,8       9,10,7          8

这里,assignee_webassignee_appassignee_qa都是用户的id的参考id 表。现在我想要一个输出看起来像的选择查询

id    assignee_web         assignee_app          assignee_qa
29   dani,dipu,mark         dani, dipu            dani,mark
28     dani,himel           dani,mark,dipu         himel

我写了一个只显示assignee_web 的查询。这是我的代码

SELECT c.id as id, GROUP_CONCAT(u.name SEPARATOR ', ') as assignee_web FROM config_project c, users u
        WHERE FIND_IN_SET(u.id, c.assignee_web)
        GROUP BY c.id ORDER BY c.id DESC

我只能获取assignee_web 数据,但无法通过此查询返回assignee_app 和assignee_qa 的数据。

【问题讨论】:

  • 规范化你的表格。期间。
  • 你现在得到了什么结果?
  • 您的其他任何问题都解决了吗?还是他们仍然开放/未解决?
  • @Fred- 我只能获取 assignee_web 数据,但无法使用此查询返回 assignee_app 和 assignee_qa 的数据
  • 未来的读者可能会认为这些问题以及您已解决的其他问题可能会认为这些问题尚未解决,因此很想发布更多答案。接受它们将它们标记为已解决。他们因他们的优雅而获得回报,而您获得更多声望;-) 这是“双赢”

标签: mysql select group-concat


【解决方案1】:

您可以使用相关查询:

SELECT c.id as id,
       (SELECT GROUP_CONCAT(u.name SEPARATOR ', ') 
        FROM users u
        WHERE FIND_IN_SET(u.id, c.assignee_web)) as assignee_web,
       (SELECT GROUP_CONCAT(u.name SEPARATOR ', ') 
        FROM users u
        WHERE FIND_IN_SET(u.id, c.assignee_app)) as assignee_app,
       (SELECT GROUP_CONCAT(u.name SEPARATOR ', ') 
        FROM users u
        WHERE FIND_IN_SET(u.id, c.assignee_qa)) as assignee_qa                
FROM config_project c
ORDER BY c.id DESC

虽然您应该规范化您的数据。人们只是从不学习,每次你遇到一些新问题时,你都会继续遇到这些问题。

【讨论】:

  • 我应该标记答案,但我的声誉较低,这就是为什么我不能投票或标记答案。在这种情况下,我现在能做什么?我是stackoverflow的新手
  • @user7149801 您还没有投票的声誉,但您仍然可以通过标记答案左侧的 (V) 符号来接受答案。您只需要在打开帖子后等待 15 分钟 :)
  • 哦,这么可怕的东西减一。 :-(
  • 您实际上并没有“忽略”我的回答:)我从来没有说过它很漂亮,我只是假设他需要一次性查询来一次性使用;并非一切都需要漂亮..
猜你喜欢
  • 2017-09-11
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
  • 2019-05-29
  • 2018-05-12
  • 2012-10-24
  • 1970-01-01
  • 2010-09-27
相关资源
最近更新 更多