我在DB下表下使用mysql GROUP_CONCAT和WHERE
EVENT
ID, TITLE, ...
票數
ID, TYPE, ID_EVENT
評論
個ID, COMMENT, ID_EVENT
DATES
ID, DATE, ID_EVENT
一個事件有許多動作,有許多意見和有許多日期。
我使用以下查詢從EVENTS表中檢索信息,併爲每個事件檢索投票數,評論數和每個日期。對於他們的最新的一個事件=明日(2015年4月3日)
SELECT events.id,
events.title,
GROUP_CONCAT(dates.date) AS dates,
COUNT(distinct votes.id) AS votes,
COUNT(distinct comments.id) AS comments
FROM events
LEFT JOIN dates on dates.post_id = events.id
LEFT JOIN votes on votes.post_id = events.id AND votes.type = 1
LEFT JOIN comments on comments.votes_id = votes.id
WHERE dates.date = CURDATE() + INTERVAL 1 DAY
GROUP BY events.id
結果看起來像這樣
id title dates votes comment
33 Event33 2015-04-03,2015-04-03,2015-04-03 4 0
39 Event39 2015-04-03 9 1
爲什麼日期欄重複同日(明天)??? Event33的日期應爲2015-04-01,2015-04-02,2015-04-03。
出了什麼問題?
你可能想'GROUP BY events.id'和使用'裏面distinct'的' GROUP_CONCAT()',正如你對'COUNT()' – 2015-04-02 20:02:50
所做的那樣,對不起ypercube,這個小組寫的是一個錯誤。我編輯它。查詢工作正常,沒有列出所有事件的WHERE子句。但是,當我添加where子句來按日期過濾 – user3670128 2015-04-02 20:50:31