2013-08-07 2 views
-2

내가 여기에 질문을 (날짜 매개 변수) 가입과 발생을 계산 이것을하기 위해서, 또한 지난 6 개월 또는 1 년 내에 태그를 포함하기를 원했기 때문에 publish_date 이벤트를 체크하십시오.MySQL은

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 

감사합니다 AS 태그 (고려되지 않은 날짜를 게시) SELECT c.name의 수를 반환

**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! :)

+1

게시자 측에서 아무런 노력도 보이지 않습니다. –

+0

publish_date는 event_Categories에 의해 링크 된 events 테이블에 있으며, 이는 event_id를 보유하고 있음을 보여줍니다. id & publish_date (unix time) – BigDistance

+0

@juergend - 이런 식으로 생각해서 죄송합니다. 여기에서 물어 보았고 모든 정보를 제공했다고 생각했습니다. 이 질문을하는 동안, 나는 내 자신의 솔루션을 시도하고있다 (아래 참조) – BigDistance

답변

0
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 
JOIN events e ON e.id = ec.event_id 
WHERE(e.publish_end_date > (unix_timestamp() -7889229) OR e.publish_end_date = 0) 
GROUP BY c.id