Как получить count () количества возвращаемых строк и данных из них в одном запросе - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть этот запрос:

select
    problem_comments.user_id ,
    problem_comment_id ,
    problem_id ,
    first_name  ,
    count(problem_comment_id) num
from problem_comments
left join users on problem_comments.user_id = users.user_id
where problem_id = 222
group by problem_comments.comment

, и это базовое соединение таблицы, в которой перечислены проблемы, и другой таблицы, в которой перечислены комментарии к этой проблеме.

Что япопытка сделать с count(problem_comment_id) - посмотреть, сколько комментариев в проблеме, чтобы я мог отобразить это количество.Проблема с текущим запросом состоит в том, что он возвращает 3 строки, потому что есть 3 комментария для этой проблемы.Но в столбце «num» всегда указывается 1.

Как я могу получать одни и те же данные о проблемах и комментариях, а также получать общее количество комментариев?

Спасибо!!

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

Я вижу тег , так что ... Вы можете использовать функции num_rows после выполнения запроса.

Вот некоторая информация, если вы используете mysqli.

А для PDO.

Если вы используете расширение mysql (и позор вам, если так!), вы можете использовать mysql_num_rows()

1 голос
/ 19 декабря 2011

Может быть, это будет работать для вас

select
    problem_comments.user_id ,
    problem_comment_id ,
    problem_id ,
    first_name  ,
    commentCount AS num
from problem_comments
left join users on problem_comments.user_id = users.user_id
left join
(select problem_id as comment_count_problem_id, COUNT(problem_comment_id) as commentCount
 from problem_comments
 group by problem_comments.problem_id) t ON t.comment_count_problem_id = problem_id
where problem_id = 222
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...