Drooid
Новичок
Запрос с COUNT и GROUP BY
Добрый день!
Условия задачи следующие.
Есть табличка topics.
В ней поля
t_id, t_subject, t_poster_id
Есть табличка invitations
в ней поля i_id, i_from_user_id, i_to_user_id, i_topic_id
Грубо говоря форум, в котором автор темы может специально разослать другим участникам приглашения..
И при этом, пользователь должен видеть только те темы, в которых он либо автор, либо у него есть приглашение (приглашение на свою тему он естественно не получает).
Сделал это таким запросом
И это даже работает.
А дальше мне надо посчитать сколько всего таких тем.
Пробовал так
Но он возвращает несколько строчек.. (причем их количество и есть правильный результат). Без GROUP BY сумму того, что с GROUP BY.
Но я никак не могу понять, почему в данном условии он находит одни и теже topics.t_id, и соответственно с GROUP BY он считает их количество.. разных..
Добрый день!
Условия задачи следующие.
Есть табличка topics.
В ней поля
t_id, t_subject, t_poster_id
Есть табличка invitations
в ней поля i_id, i_from_user_id, i_to_user_id, i_topic_id
Грубо говоря форум, в котором автор темы может специально разослать другим участникам приглашения..
И при этом, пользователь должен видеть только те темы, в которых он либо автор, либо у него есть приглашение (приглашение на свою тему он естественно не получает).
Сделал это таким запросом
PHP:
SELECT
topics.t_id,
topics.t_subject
FROM
topics
LEFT JOIN
invitations
ON
topics.t_id = invitations.i_topic_id
WHERE
(topics.t_poster_id = '".$user_id."'
OR invitations.i_to_user_id = '".$user_id."')
GROUP BY
topics.t_id
LIMIT
0, 3
А дальше мне надо посчитать сколько всего таких тем.
Пробовал так
PHP:
SELECT
COUNT(topics.t_id)
FROM
topics
LEFT JOIN
invitations
ON
topics.t_id = invitations.i_topic_id
WHERE
(topics.t_poster_id = '".$user_id."'
OR invitations.i_to_user_id = '".$user_id."')
GROUP BY
topics.t_id
Но я никак не могу понять, почему в данном условии он находит одни и теже topics.t_id, и соответственно с GROUP BY он считает их количество.. разных..