gpt4 book ai didi

MySQL 用条件连接多个(超过 2 个)表

转载 作者:行者123 更新时间:2023-11-29 14:47:08 25 4
gpt4 key购买 nike

假设我有 4 个表:

表 1:任务

ID     Task            Schedule
1 Cut Grass Mon
2 Sweep Floor Fri
3 Wash Dishes Fri

表 2:已分配

ID     TaskID (FK)     PersonID (FK)
1 1 1
2 1 2
3 2 3
4 3 2

表 3:人员

ID     Name
1 Tom
2 Dick
3 Harry

表 4:移动

ID     PersonID (FK)     CountryCode     MobileNumber
1 1 1 555-555-5555
2 2 44 555-555-1234
3 3 81 555-555-5678
4 3 81 555-555-0000

我正在尝试显示

  1. 某一天的任务
  2. 分配任务的人员姓名
  3. 该人的电话号码

我认为它应该类似于以下内容,但我不确定如何设置条件以便正确限制结果:

SELECT T.ID, T.Task, P.Name, M.MobileNumber
FROM Task AS T
LEFT JOIN Assigned AS A
ON T.ID = A.TaskID
LEFT JOIN Person AS P
ON A.PersonID = P.ID
LEFT JOIN Mobile AS M
ON M.PersonID = P.ID
WHERE T.Schedule = Fri

我的目标是获取以下信息(显示方式会有所不同):

Tasks                        Name             MobileNumber
Sweep Floor, Wash Dishes Dick, Harry 44-555-555-1234, 81-555-555-5678, 81-555-555-0000

当然,如果 JOIN 是错误的方式,请说明。

最佳答案

在这种情况下,尚不清楚您想要如何处理重复数据,但您应该考虑使用内部联接而不是外部联接,并使用类似 group_concat() 之类的方法来组合电话号码。

关于MySQL 用条件连接多个(超过 2 个)表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721811/

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