这是我所拥有的,这是我想要完成的:
teams TABLE
TeamID Season Coach1 Coach2
1 2011 35 22
2 2011 27
3 2012 11
4 2013 22 13
staff TABLE
StaffID Nickname
11 Bob
13 Rick
22 Mary
27 Steve
35 Joe
desired OUTPUT:
TeamID Season c1 c2
1 2011 Joe Mary
2 2011 Steve
3 2012 Bob
4 2013 Mary Rick
这是我当前的 MYSQL 查询:
SELECT gt.TeamID, gt.Season, gt.Coach1, c1.Nickname c1Nickname, gt.Coach2, c2.Nickname c2Nickname
FROM gladiator_teams as gt, staff as c1, staff as c2
WHERE gt.Coach1=c1.StaffID AND gt.Coach2=c2.StaffID
返回:
TeamID Season c1 c2
1 2011 Joe Mary
4 2013 Mary Rick
我不知道如何修改查询以返回 Coach 2 具有 NULL 值的行。我想我需要一个 IFNULL 函数去某个地方,但我不知道确切的位置。非常感谢任何帮助!
最佳答案
你应该使用左连接
SELECT
gt.TeamID
, gt.Season
, gt.Coach1
, c1.Nickname c1Nickname
, gt.Coach2
, c2.Nickname c2Nickname
FROM gladiator_teams as gt
LEFT JOIN staff as c1 gt.Coach1=c1.StaffID
LEFT JOIN staff as c2 gt.Coach2=c2.StaffID
关于mysql - 在查询中使用可能的 NULL 值进行多次查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40073466/