我有以下查询正确输出所有内容,除了我不想要它给我的其中一行:
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为“未指定”的条目,但我不确定该条款的放置位置。我评论了我认为可以解决问题的那条线,但最终却给了我一个错误。我是否也可以解释为什么我当前的查询没有意义?
答案 0 :(得分:1)
在加入后使用where 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
答案 1 :(得分: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
答案 2 :(得分: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;