Sql server T-SQL右外连接不&';好像不行
我遇到了一个右连接的问题,它似乎不是我想要的。 下面的查询不会从grp表返回所有记录。我希望有几行与30555 gl记录匹配,grp表中有30行gl列为空。相反,我得到了30555 gl记录预期的几行,而只有3行匹配grp行,而不是30行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
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;
我更喜欢左连接
而不是右连接