SQL连接有问题吗

SQL连接有问题吗,sql,sql-server,tsql,join,Sql,Sql Server,Tsql,Join,表A 表B 我试图使用左外连接,但似乎不起作用 如果还没有指定参数的数据,我希望查询从表A中提取平均分数为0的所有数据。这意味着,在图3中,它应该在s上显示ID 2和0。有人能帮我找出解决方案吗?您在联接中切换了表名。若要保留表A的所有内容,则需要是左侧联接左侧列出的表。另外,您希望只影响表B的输出而不过滤整个结果的任何内容都应该移动到左joinon子句。应该是: SELECT a.id, Avg(Isnull(b.score, 0)) AS s FROM a

A

B

我试图使用
左外连接
,但似乎不起作用


如果还没有指定参数的数据,我希望查询从表A中提取平均分数为0的所有数据。这意味着,在图3中,它应该在s上显示ID 2和0。有人能帮我找出解决方案吗?

您在联接中切换了表名。若要保留表A的所有内容,则需要是左侧联接左侧列出的表。另外,您希望只影响表B的输出而不过滤整个结果的任何内容都应该移动到左join
on
子句。应该是:

SELECT a.id, 
       Avg(Isnull(b.score, 0)) AS s 
FROM   a 
        LEFT OUTER JOIN b 
                     ON a.id = b.id 
                        AND b.kind = 'X' 
GROUP  BY a.id 

哇!太快了。该解决方案运行良好,感谢您解释我的查询不起作用的原因。