gpt4 book ai didi

mysql - 获取具有连接的人员的事件任务

转载 作者:行者123 更新时间:2023-11-29 13:56:49 24 4
gpt4 key购买 nike

我有一个人员表和一个任务表。虽然一项任务可以由多人完成,所以在中间有一个“花名册”表:

person
task_roster
task

我正在寻找一个返回每个人及其当前事件任务的查询。如果它们没有事件任务,则应该简单地返回 NULL。我一直在搞乱以下内容:

SELECT *
FROM person
LEFT OUTER JOIN task_roster ON (task_roster.person = person.id)
LEFT OUTER JOIN task on (task.id = task_roster.task AND task.status = 1)
ORDER BY person.name

我也遇到的问题是,此查询返回旧的名册条目,因此对于他们执行的每个先前任务,我多次返回同一个人。我还尝试在 person.name 上添加 Group By,但这样我就没有获得任何主动职责,只有 NULL 值。

我正在寻找的结果是这样的:

 +----------------+-----------+----------------+
| person.name | task.id | task.name |
+----------------+-----------+----------------+
| David Harris | 5 | Maintenance |
| Karen Simmons | 2 | Transport |
| Linda Foster | 5 | Maintenance |
| Michael King | NULL | NULL |
+----------------+-----------+----------------+

大卫和琳达都在做同样的任务。花名册表只不过是 person.id 和 task.id 之间的链接

最佳答案

我想知道这是否可行:

SELECT person.*,task.status
FROM person
LEFT OUTER JOIN task_roster ON (task_roster.person = person.id)
LEFT OUTER JOIN task on task.id = task_roster.task
WHERE task.status=1
ORDER BY person.name

关于mysql - 获取具有连接的人员的事件任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728810/

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