Один SQL-запрос вместо многих - PullRequest
1 голос
/ 24 июня 2011

Предположим, у меня есть таблица MySQL с двумя столбцами:

id
invited_by_id

и я хочу знать для каждый идентификатор, сколько раз он появляется в столбце invited_by_id.

Как сделать это, используя только один запрос?

Ответы [ 4 ]

7 голосов
/ 24 июня 2011

Простой GROUP BY в столбце invited_by_id - это все, что вам нужно, поскольку он содержит те же значения идентификатора, что и столбец id:

SELECT invited_by_id, COUNT(*) AS invited_count FROM table GROUP BY invited_by_id
3 голосов
/ 24 июня 2011
select id1.id, (count*)
from id as id1
inner join id as id2 on id1.id = id2.invited_by_id
group by id1.id
1 голос
/ 24 июня 2011
SELECT m.id
     , grp.cnt
FROM 
    ( SELECT DISTINCT id
      FROM mytable
    ) AS m
  LEFT JOIN
      ( SELECT invited_by_id
             , COUNT(*) AS cnt
        FROM mytable
        GROUP BY invited_by_id
      ) AS grp
    ON grp.invited_by_id = m.id
1 голос
/ 24 июня 2011
select invited_by_id, count(*) from table group by invited_by_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...