gpt4 book ai didi

mysql - 一行多个答案

转载 作者:行者123 更新时间:2023-11-29 02:56:16 25 4
gpt4 key购买 nike

我有以下表格:

matters(matterid, mattername, refno)
mattersjuncstaff(junked, matterid, staffid, lead)
staff(staffid, staffname)

一个问题可能有许多相关人员,其中一些人员将被标记为“领导”,即他们将在“领导”字段中显示“Y”。

我希望显示一个表格,其中包含事项列表、事项名称和引用编号以及标记为领导的员工,最好在一行中。所以它看起来像:

reference | mattername      | Lead Staff                        |
ABC1 | matter abc & Co | Fred Smith, Jane Doe, Naomi Watts |

等等

我正在使用下面的代码,但这只会显示一个人,潜在客户字段标记为 Y。

SELECT refno, mattername, matters.matterid, staffname
FROM matters
INNER JOIN matterjuncstaff
USING (matterid)
Inner join staff
using (staffid)
Inner join matterjuncactions
On matterjuncactions.matterid = matters.matterid
WHERE lead = 'Y'
GROUP BY matters.matterid, nickname

谁能告诉我如何解决这个问题?

最佳答案

您想要连接来自联接的值并将其表示为结果集中的一个字段。 GROUP_CONCAT函数适用于此类查询:

SELECT m.matterid, m.refno, m.mattername, GROUP_CONCAT(s.staffname) AS LeadStaff
FROM matters m
LEFT JOIN matterjuncstaff mjs ON mjs.matterid = m.matterid AND lead = 'Y'
LEFT JOIN staff s ON s.staffid = mjs.staffid
GROUP BY m.matterid, m.refno, m.mattername

Join 更改为 LEFT 并将 lead = 'Y' 移到那里,否则您将失去 matters 并且没有领导人员。
如果您只想事项有一些领导人员,请使用INNER JOIN
我已经删除了 matterjuncactions,因为你没有提供它的信息。

关于mysql - 一行多个答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30461943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com