我正在处理一个类的SQL问题-“提供一个学生/家长列表。删除孩子的名字,家长名字1,家长名字2。如果孩子没有家长,就显示null。”
预期结果应该如下所示
x1c 0d1x的数据
然而,我一直无法得到返回“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以包含空值的帮助,我们将不胜感激
2条答案
按热度按时间vojdkbi01#
您可以为每个父节点使用
LEFT JOIN
,这将确保即使子节点没有父节点,它们仍然会包含在结果中,并具有“NULL”值。enter image description here
修改后的查询应该是这样的:
字符串
类似的SQL查询模板:
型
阅读更多关于
LEFT JOIN
vaj7vani2#
您正在使用JOIN,它是INNER JOIN的缩写形式(JOIN = INNER JOIN). INNER JOIN只是匹配两个表共有字段中的值,它不会返回空值(如果没有父ID,则不会返回NULL)。因此,在这种情况下,我们需要使用LEFT JOIN。它将保留查尔兹的所有记录,如果没有现有的父ID,则返回父列的null值。希望它有助于