2015-07-03 1 views
-1

У меня есть таблица членамMySQL запросов с расчетом счета на одной и той же таблицы

id | parentid | name 
1   1  a 
2   1  x 
3   1  c 
4   2  d 
5   3  e 
6   3  f 
7   4  g 

Мне нужен запрос, чтобы показать список членов и сортируются от самого высокого числа людей, они родитель им так ответ будет

id | name |rank 
1  a  3 
3  c  2 
2  b  0 
4  d  0 
5  f  0 
6  g  0 
7  h  0 
+0

Часть кода требуется, чтобы получить ответ .... –

ответ

0

Вы можете использовать встроенное представление для вычисления значения rank и использовать внешнюю операцию присоединиться совпадающим к детализации строкам.

Например, что-то вроде этого:

SELECT t.id 
    , t.name 
    , IFNULL(r.rank,0) AS `rank` 
    FROM mytable t 
    LEFT 
    JOIN (SELECT c.parentid 
       , COUNT(1) AS `rank` 
      FROM mytable c 
      GROUP BY c.parentid 
     ) r 
    ON r.parentid = t.id 
ORDER BY `rank` DESC, t.id ASC 
Смежные вопросы