Sql server T-SQL右外连接不&';好像不行

Sql server T-SQL右外连接不&';好像不行,sql-server,outer-join,Sql Server,Outer Join,我遇到了一个右连接的问题,它似乎不是我想要的。 下面的查询不会从grp表返回所有记录。我希望有几行与30555 gl记录匹配,grp表中有30行gl列为空。相反,我得到了30555 gl记录预期的几行,而只有3行匹配grp行,而不是30行 select gl.Tran_Number, gl.Amount, gl.Cost_Center, ' - ' as blank, grp.* from GL_DETAIL_MC gl right outer join EM_COST_GROUP_LI

我遇到了一个右连接的问题,它似乎不是我想要的。 下面的查询不会从grp表返回所有记录。我希望有几行与30555 gl记录匹配,grp表中有30行gl列为空。相反,我得到了30555 gl记录预期的几行,而只有3行匹配grp行,而不是30行

select gl.Tran_Number, gl.Amount, gl.Cost_Center, ' - ' as blank, grp.*
from GL_DETAIL_MC gl
    right outer join EM_COST_GROUP_LIST_MC grp on grp.Cost_Center_Code = gl.Cost_Center and grp.Company_Code = gl.Company_Code
where
    (gl.Company_Code = 'RCL' or grp.Company_Code = 'RCL')
    and (gl.Tran_Number = '30555     ' or gl.Transaction_ID is null)

我不确定我哪里出了问题。哦,我应该提到的是,我尝试在测试数据库中创建一个类似的表结构,一切都按照我的预期进行。这让我想到,有一个数据库设置正在改变查询返回结果的方式。

外部连接很好。问题在于
where
子句

我想你打算:

select gl.Tran_Number, gl.Amount, gl.Cost_Center, ' - ' as blank, grp.*
from EM_COST_GROUP_LIST_MC grp LEFT JOIN
     GL_DETAIL_MC gl
     on grp.Cost_Center_Code = gl.Cost_Center and
        grp.Company_Code = gl.Company_Code and
        gl.Company_Code = 'RCL' and
        gl.Tran_Number = '30555 
where grp.Company_Code = 'RCL' or gl.Company_Code is not null;
我更喜欢
左连接
而不是
右连接