2012-11-26 66 views
2

我想加入两个或多个具有group by子句的select语句,但它不起作用。使用Group By子句呈现2条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 

所有我所得到的是第一个发言的工作,但第二个语句没有。我没有得到秩2选择

UPDATE:

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 
+0

指定表的结构如何,awesome..seems工作 – BlackFire27