我尝试使用此查询:
“SELECT * FROM guests WHERE event_id =”。$ id。“GROUP BY member_id;”
我收到了这个错误:
错误:列“guests.id”必须出现在GROUP BY子句中或用于聚合函数
任何人都可以解释我如何解决这个问题吗?
答案 0 :(得分:1)
如果不让“选择”知道要采取什么,以及如何分组,则无法进行分组 尝试
SELECT guests.member_id FROM guests WHERE event_id=".$id." GROUP BY member_id;
如果您需要从此表中获取有关来宾的更多信息,则需要将其添加到“分组依据”中。
另外,看起来您的选择实际上应该是
SELECT guests.id FROM guests WHERE event_id=".$id." GROUP BY id;
答案 1 :(得分:0)
group by
查询中使用的每个列都需要专门调出(即,不要SELECT * FROM ...
),因为您需要在某种聚合函数中使用它们(min / max / sum / avg / count / etc)或成为group by
子句的一部分。
例如:
SELECT instrument, detector, min(date_obs), max(date_obs)
FROM observations
WHERE observatory='SOHO'
GROUP BY instrument, detector;