我想加入两个或多个具有group by子句的select语句,但它不起作用。
SELECT COUNT(`rank`) AS rank1,sitename
FROM `larrdb_ranking`
INNER JOIN larrdb_site_list USING (sid)
WHERE rank=1
GROUP BY sitename
UNION
SELECT COUNT(`rank`) AS rank2 ,sitename
FROM `larrdb_ranking`
INNER JOIN larrdb_site_list USING (sid)
WHERE rank=2
GROUP BY sitename
我得到的只是第一个声明有效,但第二个声明没有...我没有选择rank2
更新
Union All也不起作用:
SELECT COUNT(`rank`) AS rank1,sitename
FROM `larrydb_ranking`
INNER JOIN larrydb_site_list USING (sid)
WHERE rank=1
GROUP BY sitename
UNION ALL
SELECT COUNT(`rank`) AS rank2 ,sitename
FROM `larrydb_ranking`
INNER JOIN larrydb_site_list USING (sid)
WHERE rank=2
GROUP BY sitename
column..rank2未出现
答案 0 :(得分:1)
试试这个:
SELECT SUM(IF(rank=1, 1, 0)) AS rank1, SUM(IF(rank=2, 1, 0)) AS rank2,sitename
FROM `larrydb_ranking`
INNER JOIN larrydb_site_list USING (sid)
GROUP BY sitename