Sql s在左表中,仍然不会将左表中不满足条件的行包括在结果集中
我花了很长时间才弄明白,我希望它能解释得很好,并且能有所帮助。(因为我以前也很难理解它)。这是在oracleThis中完成的,它在SQL Fiddle()中生成正确的结果。运行示例时出现问题。这是在oracleThis中完成的。这将在SQL FIDLE()中生成正确的结果。运行示例时出现问题。这只会产生与原始左连接相同的结果;所有的数据。老实说,您对空值的观察让我更加困惑。@user3297834。在这个查询中,左连接和右连接应该产生相同的结果。在查看结果时,我怀疑有什么东西正在过滤掉只有Sql s在左表中,仍然不会将左表中不满足条件的行包括在结果集中,sql,oracle,left-join,self-join,right-join,Sql,Oracle,Left Join,Self Join,Right Join,我花了很长时间才弄明白,我希望它能解释得很好,并且能有所帮助。(因为我以前也很难理解它)。这是在oracleThis中完成的,它在SQL Fiddle()中生成正确的结果。运行示例时出现问题。这是在oracleThis中完成的。这将在SQL FIDLE()中生成正确的结果。运行示例时出现问题。这只会产生与原始左连接相同的结果;所有的数据。老实说,您对空值的观察让我更加困惑。@user3297834。在这个查询中,左连接和右连接应该产生相同的结果。在查看结果时,我怀疑有什么东西正在过滤掉只有NUL
NULL
值的行;所有的数据。老实说,您对空值的观察让我更加困惑。@user3297834。在这个查询中,左连接和右连接应该产生相同的结果。当您查看结果时,我怀疑有什么东西正在过滤掉只有NULL
值的行。谢谢您的解释。我想这是因为我使用了相同的列名;因为是同一张桌子,这让我很困惑。谢谢你澄清这一点!谢谢你的解释。我想这是因为我使用了相同的列名;因为是同一张桌子,这让我很困惑。谢谢你澄清这一点!
ID NAME DEPARTMENT
1 stelios sa
2 andros sa
3 stav ba
4 mary ba
5 antonia la
6 lambros ka
NAME DEPARTMENT
andros sa
steliso sa
mary ba
stav ba
NAME DEPARTMENT
andros sa
steliso sa
mary ba
stav ba
antonia la
lambros ka
NAME DEPARTMENT
steliso sa
andros sa
stav ba
mary ba
NAME DEPARTMENT
andros sa
steliso sa
mary ba
stav ba
antonia la
lambros ka
NAME DEPARTMENT
stelios sa
andros sa
stav ba
mary ba
(null) (null)
(null) (null)
select j2.name,j2.department
from join_test j1 left join join_test j2
on(j1.department=j2.department and j1.name<>j2.name)
select j1.name,j1.department
from join_test j1 right join join_test j2
on(j1.department=j2.department and j1.name<>j2.name)
NAME DEPARTMENT
stelios sa
andros sa
stav ba
mary ba
(null) (null)
(null) (null)
NAME DEPARTMENT NAME DEPT
stelios sa andros sa
andros sa stelios sa
stav ba mary ba
mary ba stav ba
(null) (null) antonia la
(null) (null) lambros ka