Выберите подсчитанные строки и считать в том же запросе в MySQL? - PullRequest
2 голосов
/ 21 ноября 2011

Настольные принадлежности

(code, id, value)
1      2    value1
1      3    value2
1      4    value4
1      5    value5
2      2    valueX
2      3    valueY
2      4    valueZ

Результат может быть:

(code, id, value, count)
1      2    value1     4
1      3    value2     4
1      4    value4     4
1      5    value5     4
2      2    valueX     3
2      3    valueY     3
2      4    valueZ     3

Но проблема в том, что когда я использую COUNT (код), я получаю:

1      2    value1     4
2      2    valueX     2

Спасибо.

1 Ответ

3 голосов
/ 21 ноября 2011

Сначала вам нужно определить RecordCount для каждого кода, а INNER JOIN - в исходном запросе, чтобы предоставить дополнительный столбец. ЕСЛИ вы используете PHP, возможно, будет эффективнее выслушать комментарий пользователя366534 об определении этого числа, как только вы попадете в код клиента.

SELECT i.code, i,id, i.value, s.RecordCount
FROM items AS i
INNER JOIN
(
   SELECT it.Code, COUNT(1) AS RecordCount
   FROM items AS it
   GROUP BY it.Code
) AS s ON i.code = s.code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...