我有两个表看起来像那样。
使用者
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_web,assignee_app和assignee_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的数据。
您可以使用相关查询:
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
虽然您应该规范化数据。人们只是从不学习,每当您遇到一些新问题时,您都会继续遇到这些问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句