【发布时间】:2013-08-08 23:34:25
【问题描述】:
我在这里问了一个问题:mySQL count occurrences with JOIN
这个问题,问如何在加入等之后计算标签的出现次数。
我想知道如何执行此操作,但还要检查事件publish_date,因为我只想包含过去 6 个月或一年内的标签。
**events**
| id | publish_date |
+-------------------------+
+ 1 | 1377612000 |
+ 2 | 1377612000 |
+ 3 | 1377612000 |
**Event_Categories** (Stores Tags / Categories)
| id | name |
+-----------------+
+ 1 | sport |
+ 2 | charity |
+ 3 | other_tag |
**Events_Categories** (Linking Table)
| event_id | event_category_id |
+-------------------------------+
+ 1 | 1 |
+ 2 | 2 |
+ 3 | 1 |
+ 3 | 2 |
返回标签计数的 SQL(不考虑发布日期)SELECT c.name AS
tag_name, COUNT(ec.event_id) AS occurrences
FROM Event_Categories c
INNER JOIN Events_Categories ec ON c.id = ec.event_category_id
GROUP BY c.id
谢谢! :)
【问题讨论】:
-
我看不到 publish_date 也没有你方面的努力。
-
publish_date 将在事件表上,该表由 Events_Categories 链接,显示持有 event_id。我认为没有必要显示事件表,因为只有相关字段是 id 和 publish_date(unix 时间)
-
@juergend - 很抱歉让您有这种感觉,我在这里询问并认为我已经提供了所有信息。在问这个问题时,我一直在尝试自己的解决方案(见下文)
标签: mysql join count conditional-statements many-to-one