外部加入返回空值的位置

嗨,我有两张桌子。 我想列出

  • table1中存在于table2中的所有记录
  • table2中不存在于table1中的所有记录都带有where条件
  • 在第二种情况下,table1会返回空行,但我无法使查询正常工作。 它只返回空行

    SELECT 
        A.CLMSRNO,A.CLMPLANO,A.GENCURRCODE,A.CLMNETLOSSAMT,
        A.CLMLOSSAMT,A.CLMCLAIMPRCLLOSSSHARE
    FROM 
        PAKRE.CLMCLMENTRY A 
    RIGHT OUTER JOIN (
        SELECT 
            B.CLMSRNO,B.UWADVICETYPE,B.UWADVICENO,B.UWADVPREMCURRCODE,
            B.GENSUBBUSICLASS,B.UWADVICENET,B.UWADVICEKIND,B.UWADVYEAR,
            B.UWADVQTR,B.ISMANUAL,B.UWCLMNOREFNO 
        FROM
            PAKRE.UWADVICE B 
        WHERE
            B.ISMANUAL=1
    ) r
    ON a.CLMSRNO=r.CLMSRNO
    
    ORDER BY 
        A.CLMSRNO DESC;
    

    你在使用哪种操作系统?

    表别名在某些平台上是大小写敏感的,这就是为什么您的连接条件ON a.CLMSRNO=r.CLMSRNO失败。

    尝试使用A.CLMSRNO=r.CLMSRNO并查看是否有效


    我不理解你的第一次尝试,但是这里基本上是你需要的,我想:

    SELECT *
    FROM TABLE1
    INNER JOIN TABLE2
        ON joincondition
    
    UNION ALL
    
    SELECT *
    FROM TABLE2
    LEFT JOIN TABLE1
        ON joincondition
        AND TABLE1.wherecondition
    WHERE TABLE1.somejoincolumn IS NULL
    

    我想你可能想要删除子查询并将其列置于主查询中,例如

    SELECT A.CLMSRNO, A.CLMPLANO, A.GENCURRCODE, A.CLMNETLOSSAMT, 
           A.CLMLOSSAMT, A.CLMCLAIMPRCLLOSSSHARE,  
           B.CLMSRNO, B.UWADVICETYPE, B.UWADVICENO, B.UWADVPREMCURRCODE, 
           B.GENSUBBUSICLASS, B.UWADVICENET, B.UWADVICEKIND, B.UWADVYEAR, 
           B.UWADVQTR, B.ISMANUAL, B.UWCLMNOREFNO     
      FROM PAKRE.CLMCLMENTRY A
           RIGHT OUTER JOIN PAKRE.UWADVICE B 
              ON A.CLMSRNO = B.CLMSRNO
     WHERE B.ISMANUAL = 1
     ORDER 
        BY A.CLMSRNO DESC;
    
    链接地址: http://www.djcxy.com/p/71101.html

    上一篇: Outer Join with Where returning Nulls

    下一篇: Delete all rows in a table based on another table