带计数的非聚合列
Non aggregated Column with Count
我是 MySQL 的新手,我正在尝试制作一个统计和显示点赞数的活动页面。
我收到错误:
Error details: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #10 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.events_likes.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
我无法更改 SQL 模式,所以我想知道是否有聚合列的方法?
代码:
SELECT *, eventid, COUNT(events_likes.id) AS likes, GROUP_CONCAT(users.fname SEPARATOR '|') AS liked_by FROM events
LEFT JOIN events_likes
ON events.eventid = events_likes.event
LEFT JOIN users
ON events_likes.user = users.id
GROUP BY events.eventid
问题出在 SELECT *
中的 *
您要求 MySQL 到 return 目标表中的每一列,但其中一些未聚合 (event_likes.id)。
仅列出您需要的列。
SELECT eventid, COUNT(events_likes.id) AS likes, GROUP_CONCAT(users.fname SEPARATOR '|') AS liked_by FROM events
LEFT JOIN events_likes
ON events.eventid = events_likes.event
LEFT JOIN users
ON events_likes.user = users.id
GROUP BY events.eventid
我是 MySQL 的新手,我正在尝试制作一个统计和显示点赞数的活动页面。 我收到错误:
Error details: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #10 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.events_likes.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
我无法更改 SQL 模式,所以我想知道是否有聚合列的方法?
代码:
SELECT *, eventid, COUNT(events_likes.id) AS likes, GROUP_CONCAT(users.fname SEPARATOR '|') AS liked_by FROM events
LEFT JOIN events_likes
ON events.eventid = events_likes.event
LEFT JOIN users
ON events_likes.user = users.id
GROUP BY events.eventid
问题出在 SELECT *
*
您要求 MySQL 到 return 目标表中的每一列,但其中一些未聚合 (event_likes.id)。
仅列出您需要的列。
SELECT eventid, COUNT(events_likes.id) AS likes, GROUP_CONCAT(users.fname SEPARATOR '|') AS liked_by FROM events
LEFT JOIN events_likes
ON events.eventid = events_likes.event
LEFT JOIN users
ON events_likes.user = users.id
GROUP BY events.eventid