我正在尝试通过此查询显示所有区域的区域ID,区域名称和该区域中的商店数量
SELECT r.regionid, r.regionname, COUNT(*),
FROM region r, store s
WHERE r.regionid = s.regionid
GROUP BY r.regionid, r.regionname;
count列显示“((无列名)”),我不知道如何解决该问题
答案 0 :(得分:6)
请不要使用Implicit Join
,而要使用explicit join
。您可以了解更多有关为什么不能在Bad habits to kick : using old-style JOINs
SELECT
reg.regionid,
reg.regionname,
COUNT(*) as regionCount
FROM
region reg
Inner Join store st on reg.regionid = st.regionid
GROUP BY
reg.regionid,
reg.regionname;
我建议不要使用别名表,例如r
或s
,为什么不对reg
使用region
而对{{1}使用st
} ..当您使复杂的查询变得可读时,它将帮助您。
对于您的store
来说很清楚。您只需要命名error
列即可。
答案 1 :(得分:0)
您需要给count列起一个别名。例如,将其命名为“ regionCount”,请使用以下代码:
SELECT r.regionid, r.regionname, COUNT(*) as [regionCount],
FROM region r
INNER JOIN store s
ON r.regionid = s.regionid
GROUP BY r.regionid, r.regionname;