0

我有以下查询,它可以正确输出所有内容,除了我不想要它给我的行之一:

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
--WHERE r.Region_Desc <> "Unspecified"
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region
GROUP BY r.Region_Cd, r.Region_Desc;

我想排除 r.Region_Desc 为“未指定”的条目,但我不确定该子句的放置位置。我注释掉了我认为可以解决问题的行,但最终给了我一个错误。我能否解释一下为什么我当前的查询没有意义?

4

3 回答 3

1

加入后使用 where 条件。

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region
WHERE r.Region_Desc <> 'Unspecified'
GROUP BY r.Region_Cd, r.Region_Desc
于 2013-04-15T05:34:30.903 回答
0

我们不能为我们试图加入其他表的父表编写 where 条件。但是我们可以用其他连接表编写条件。所以加入后使用条件。

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region
WHERE r.Region_Desc <> 'Unspecified'
GROUP BY r.Region_Cd, r.Region_Desc   
于 2013-04-15T05:37:50.990 回答
0

通过考虑性能,您应该使用这样的东西。

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region and r.Region_Desc <> "Unspecified"
GROUP BY r.Region_Cd, r.Region_Desc;
于 2013-04-15T14:58:58.297 回答