SQL 查询 - 提供学生/家长列表。格式化的孩子名字,父母名字1,父母名字2。如果孩子没有父母,就显示null

问题描述 投票:0回答:1

我正在为一个班级解决一个 SQL 问题 - “提供学生/家长列表。格式化的孩子姓名,家长姓名 1,家长姓名 2。如果孩子没有家长,则显示 null。”

预期的结果应该是这样的

但是,我一直无法获得返回“NULL”值的结果,我只能在没有空值的情况下返回行

使用此代码

SELECT child.name AS Child, parent1.name AS Parent1, parent2.name AS Parent2
FROM Person child 
JOIN Person parent1 ON child.parentID1 = parent1.personID 
JOIN Person parent2 ON child.parentID2 = parent2.personID 
ORDER BY child.name; 

任何有关如何修改 SQL 以包含空值的帮助将不胜感激

sql mysql null mysql-workbench resultset
1个回答
0
投票

您正在使用 JOIN,它是 INNER JOIN 的缩写形式(JOIN = INNER JOIN)。 INNER JOIN 只是匹配两个表共有的字段中的值,它不会返回空值(在不存在 ID 父级的情况下,它不会返回 NULL)。 因此,在这种情况下我们需要使用 LEFT JOIN。它将保留子项的所有记录,如果不存在其父 ID,则返回父列的空值。 希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.