【问题标题】:multiple lookups in query with possible NULL values在查询中使用可能的 NULL 值进行多次查找
【发布时间】:2016-10-16 17:51:41
【问题描述】:

这是我所拥有的,也是我想要完成的:

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 函数去某个地方,但我不知道确切的位置。非常感谢任何帮助!

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你应该使用左连接

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      相关资源
      最近更新 更多