Join Oracle SQL-左外部联接不返回空值行

Join Oracle SQL-左外部联接不返回空值行,join,count,outer-join,Join,Count,Outer Join,我已经读了很多关于这方面的帖子,无法确定我的问题与那些被回答的问题有什么不同。任何帮助都将不胜感激。我的问题是: SELECT A.EMPLOYEE, COUNT(B.DEPENDENT) FROM TABLE A LEFT OUTER JOIN TABLE B ON A.EMP_ID = B.EMP_ID WHERE A.EMP_ID = '12345' AND B.DEP_RELATION = 'CHILD' GROUP BY A.EMP_ID 我输入了自己的EMP_ID以检查查询。我

我已经读了很多关于这方面的帖子,无法确定我的问题与那些被回答的问题有什么不同。任何帮助都将不胜感激。我的问题是:

SELECT A.EMPLOYEE, COUNT(B.DEPENDENT)
FROM TABLE A
LEFT OUTER JOIN TABLE B ON A.EMP_ID = B.EMP_ID
WHERE A.EMP_ID = '12345'
  AND B.DEP_RELATION = 'CHILD'
GROUP BY A.EMP_ID

我输入了自己的EMP_ID以检查查询。我没有子项,查询没有返回任何结果。我想让它显示我的EMP_ID和(null)。

您的
WHERE
子句正在检查表B


试着删除
和B.DEP_RELATION='CHILD'
,看看你是否得到了想要的结果

我找到了答案。我不得不将我的B.DEP_RELATION='CHILD'行移到WHERE子句上方。谢谢。

它显示我有一个受抚养人,这是我的配偶。@glennsnoise这不是你所期望的吗?如果不知道完整的表结构,就很难计算出所需的结果。我没有子级。我正在寻找返回的查询(null)。现在,当我指定B.DEP_RELATION='CHILD'时,我什么也得不到。我想我已经解决了你的问题。您希望只计算表B中的子依赖项,而不是全部。而不是在
WHERE
子句中检查
B.DEP\u关系
,将其移动到
JOIN
子句。现在查询正在选择这是子级的行。Brian,你要做的是将这些行连接起来,然后选择AThanks中的所有行。问题解决了。现在,你知道如何有两个左外连接吗?我创建了表B的两个实例,一个指定“CHILD”,另一个指定“party”。当我运行查询时,第一个左外部联接似乎覆盖了数据。例如,我的员工有4个孩子和4个配偶。