Sql 在on子句的内部表上使用谓词左连接
我有这样一个问题: 问题1) 我想重写它以使用性能问题的临时表(我需要结果完全相同): 问题2.1和2.2Sql 在on子句的内部表上使用谓词左连接,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有这样一个问题: 问题1) 我想重写它以使用性能问题的临时表(我需要结果完全相同): 问题2.1和2.2 Select B.id, B.col2 into #temp from B where B.col3 ='Hello'; select A.col1, t.col2 from A left join #temp AS t on A.id= t.id; 但是我的结果不一样(临时表版本在B.col2中有一些nulls,而第一个版本没有)。在第一个查询中,您离开了连接,这意味着表A中的
Select B.id, B.col2
into #temp
from B
where B.col3 ='Hello';
select A.col1, t.col2
from A
left join #temp AS t on A.id= t.id;
但是我的结果不一样(临时表版本在
B.col2
中有一些null
s,而第一个版本没有)。在第一个查询中,您离开了连接,这意味着表A中的所有行。请尝试内部连接。对我来说,两个查询都有相同的结果
您是否可以获得一些数据样本以及预期的结果?我看不出任何错误,因此创建了两个表并尝试了两个代码样本-它们给出相同的结果-请参阅。你对什么情况/数据有意见?@seanb:谢谢(我已经更新了这个问题)。我不明白…对不起,我还是看不到这个问题。这显然是将另一个查询转换为示例查询。请检查是否正确完成,或者发布原始查询和表。@seanb。如果我发现问题,我会写信的。谢谢你的帮助。我想用临时表重写第一个查询。我不希望结果改变。我没有写原始的queryit给你的只有null或者有一些错误?不同的空值是什么意思?如果它为空,但在原始查询中没有,则可能是因为您要查找的id不在临时表中,或者如果存在任何其他错误,请描述它检查您的表,如select*from#tem和select*from A和select*from B是否有任何可用数据或请不要将代码作为图像发布。请参阅此处了解更多详细信息原因:谢谢,是的,这两个版本是相同的。我曾监督过其他事情。。PS我认为这里的标准是发布代码,而不是截图。
Select B.id, B.col2
into #temp
from B
where B.col3 ='Hello';
select A.col1, t.col2
from A
left join #temp AS t on A.id= t.id;