遇到SQL连接问题

时间:2014-02-05 01:34:13

标签: sql sql-server tsql join

A

enter image description here

B

enter image description here

我尝试使用LEFT OUTER JOIN,但似乎无效..

enter image description here

如果指定的参数还没有数据,我希望查询从表A中提取所有数据,平均得分为0。意思是,在图3中,它应该显示ID为2,s为0。任何人都可以帮我找出解决方案吗?

1 个答案:

答案 0 :(得分:1)

您在联接中切换了表名。为了保留表A的所有内容,它需要是左连接左侧列出的表。此外,您希望仅影响表B的输出而不过滤整个结果的任何内容都应移至左连接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