Подсчет количества постов каждого пользователя - SQL - PullRequest
0 голосов
/ 16 января 2019

Мне нужно получить количество сообщений, созданных каждым пользователем. Это структура обеих таблиц (пользователи, микросообщения).

Microposts

  • ID
  • user_id
  • содержание
  • created_at

Пользователи

  • ID
  • имя
  • Адрес электронной почты
  • admin

SELECT users.*, count( microposts.user_id ) 
FROM microposts LEFT JOIN users ON users.id=microposts.user_id 
GROUP BY microposts.user_id

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

1 Ответ

0 голосов
/ 16 января 2019

У вас соединение не в том порядке.

В LEFT JOIN вы сохраняете все записи в таблице, написанные первыми (слева) .

Итак, присоединяйтесь в другом порядке (users сначала / слева) , а затем группируйте по идентификатору таблицы пользователя, а не по user_id таблицы микросообщений ...

SELECT users.*, count( microposts.user_id ) 
FROM users LEFT JOIN microposts ON users.id=microposts.user_id 
GROUP BY users.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...