Получить номер абонента - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть две таблицы: Таблица1 (Новости) и Таблица2 (Подписчики).

Table1: id, news_title

Таблица2: идентификатор, идентификатор новости, идентификатор пользователя

Table1
id | news_title
--------------
 1 | News 1
 2 | News 2
 3 | news 3

Table2
id | news_title_id | user_id
----------------------------
 1 | 1             | 1
 2 | 1             | 2
 3 | 2             | 3

Мне нужен такой результат запроса.

news_title | subscribers
------------------------
News 1     | 2
News 2     | 1
News 3     | 0

Любая помощь?

1 Ответ

3 голосов
/ 07 февраля 2012

Простой агрегат COUNT(*) с LEFT JOIN сделает эту работу здесь. LEFT JOIN и COUNT(*) (а не COUNT(user_id)) используются для гарантии того, что заголовки с нулевым подписчиком по-прежнему возвращают строку.

SELECT 
  news_title,
  COUNT(Table2.*) AS subscribers
FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.news_title_id
GROUP BY news.title
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...