检索订户号码

时间:2012-02-07 17:45:47

标签: mysql sql

我有两个表,Table1(新闻)和Table2(订阅者)。

表1:id,news_title

表2:id,news_id,user_id

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 个答案:

答案 0 :(得分:3)

带有COUNT(*)的简单汇总LEFT JOIN将在此处完成工作。 LEFT JOINCOUNT(*)(而非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