内部联接不返回任何内容,而左侧外部联接返回NULL-SQL Server

时间:2020-02-19 01:43:06

标签: sql-server

当我使用INNER JOIN时,该查询什么都不返回,但是当我将其更改为LEFT OUTER JOIN时,我得到的是NULL值。

SELECT                  RMDET.CUST_CODE,
                        OHORDER.SHIP_TO_NAME,
                        RMDET.TRAN_REF_NO,
                        RMDET.TRAN_DATE,
                        RMDET.TRAN_AMT
FROM                    RMDET (NOLOCK)
LEFT OUTER JOIN         OHORDER (NOLOCK) ON OHORDER.ORDER_NO = RMDET.TRAN_REF_NO
WHERE                   RMDET.TRAN_AMT_APPLIED = 0
ORDER BY                RMDET.CUST_CODE

输出:

CUST_CODE   SHIP_TO_NAME    TRAN_REF_NO     TRAN_DATE           TRAN_AMT
------------------------------------------------------------------------
101         NULL            5181            2020-02-13          30.21
101         NULL            5593            2020-02-18          102.07
106         NULL            232793          2019-10-25          66.19
107         NULL            5476            2020-02-17          345.00
107         NULL            3230            2020-01-20          194.00

它应该显示“ AC Hotel”,它是101,而不是NULL,依此类推。 OHORDER.ORDER_NO和RMDET.TRAN_REF_NO是主键,但我认为问题可能在于表中的列无关。如何检查?

这是RMDET的数据:

CUST_CODE   TRAN_REF_NO TRAN_TYPE   TRAN_DATE   TRAN_AMT    TRAN_AMT_APPLIED    
      101          5181         I   2020-02-13     30.21    0.00

来自OHORDER:

ORDER_NO     CUST_CODE     SHIP_TO_CODE         SHIP_TO_NAME
    5181           101                S         AC HOTEL

列更多,但与查询无关。

0 个答案:

没有答案