我正在为一个班级解决一个 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 以包含空值的帮助将不胜感激
您正在使用 JOIN,它是 INNER JOIN 的缩写形式(JOIN = INNER JOIN)。 INNER JOIN 只是匹配两个表共有的字段中的值,它不会返回空值(在不存在 ID 父级的情况下,它不会返回 NULL)。 因此,在这种情况下我们需要使用 LEFT JOIN。它将保留子项的所有记录,如果不存在其父 ID,则返回父列的空值。 希望有帮助