mysql - 在查询中使用可能的 NULL 值进行多次查找

标签 mysql

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

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/

相关文章:

PHP 选择特定行

php - 从Mysql获取rowid

mysql - SELECT * FROM WHERE 未找到所有记录

c++ - 如何将 std::shared_ptr 与 Mysql 准备好的语句一起使用?

mysql - 哪个更好?在 Mysql 查询的 where 子句中定位或喜欢 %

php - 多个外键引用一个主键

php - 如何在cPanel中将文本框值插入Mysql?

php - Ajax 发布到数据库不发布任何内容

java - jframe配置与mySQL连接关系

mysql - 在 SQL 中连接多个表的并集