2012-08-02 4 views
0
SELECT COUNT(ID) AS RANK1 FROM `db_ranking` WHERE `sid`=2 AND `rank`=1 
UNION 
SELECT COUNT(ID) AS RANK2 FROM `db_ranking` WHERE `sid`=2 AND `rank`=2 
UNION 
SELECT COUNT(ID) AS RANK3 FROM `db_ranking` WHERE `sid`=2 AND `rank`=3 
UNION 
SELECT COUNT(ID) AS RANK4 FROM `db_ranking` WHERE `sid`=2 AND `rank`=4 
UNION 
SELECT COUNT(ID) AS RANK5 FROM `db_ranking` WHERE `sid`=2 AND `rank`=5 

Я хочу представить каждый ВЫБЕРИТЕ результат в колонке ..Mysql объединение запросов, присоединяющиеся результаты с именами

Так что я хочу иметь 5 столбцов, каждый столбец имеет счетчик ID ..

поэтому оно должно быть как то

RANK1 RANK2 RANK3 RANK4 RANK5 
    0  3  5  6  7 

Я не получаю его now..and я не знаю, почему

ответ

1

ниже работы s хорошо ..

select 
    (SELECT COUNT(ID) AS RANK1 FROM `db_ranking` WHERE `sid`=2 AND `rank`=1) as Rank1, 
    (SELECT COUNT(ID) AS RANK2 FROM `db_ranking` WHERE `sid`=2 AND `rank`=2) as rank2, 
    (SELECT COUNT(ID) AS RANK3 FROM `db_ranking` WHERE `sid`=2 AND `rank`=3) as rank3, 
    (SELECT COUNT(ID) AS RANK4 FROM `db_ranking` WHERE `sid`=2 AND `rank`=4) as rank4, 
    (SELECT COUNT(ID) AS RANK5 FROM `db_ranking` WHERE `sid`=2 AND `rank`=5) as rank5 
    from dual 
+0

решения lol..nice, но это не дает мне никаких результатов, когда он должен –

+0

вы можете объяснить мне часть нет решения? пожалуйста ! – Esh

+0

это когда phpmyadmin ,, выполняет запрос и ничего не показывает..но сообщение .. никаких результатов нет ничего .. запрос остается там, где он был, и страница просто обновлена ​​ –

0

Наиболее эффективен метод будет

SELECT 
    SUM(CASE WHEN `rank`=1 THEN 1 ELSE 0 END) as Rank1, 
    SUM(CASE WHEN `rank`=2 THEN 1 ELSE 0 END) as Rank2, 
    SUM(CASE WHEN `rank`=3 THEN 1 ELSE 0 END) as Rank3, 
    SUM(CASE WHEN `rank`=4 THEN 1 ELSE 0 END) as Rank4, 
    SUM(CASE WHEN `rank`=5 THEN 1 ELSE 0 END) as Rank5 
FROM 
    `db_ranking` 
WHERE 
    `sid`=2 
Смежные вопросы