出于某种原因(我想我知道为什么),当超过一行的$activityday 具有相同的值时,其他行将不再显示。我认为这是因为 group by,但我不能确定。
$activityday 是一个从 1 到 9 的数字,表示当天的事件。表 venues_activity 获取该数字并写入事件的名称,而group by 根据重要性对事件进行排序。
是否有其他方法可以显示我的所有行?谢谢你! :)
SELECT
venues.*,
venues_activity.ACTIVITY_EN
FROM venues
INNER JOIN venues_activity
ON $activityday = venues_activity.ID
LEFT JOIN events
ON events.VENUE_LOCATION = venues.ID
AND start_datetime >= '$DATE_START_SELECTED'
AND end_datetime < '$DATE_END_SELECTED'
where events.VENUE_LOCATION IS NULL
AND VENUE_TYPE='1'
AND $closeday!='Closed'
AND $activityday!='9'
GROUP BY $activityday
最佳答案
我想你想要 ORDER BY
clause... not the GROUP BY
clause .
GROUP BY
旨在完全按照您的描述进行操作...将重复值分组到一行中,旨在与聚合函数结合使用,例如 SUM
、AVG
或 COUNT
。
ORDER BY
只是对结果进行排序。
关于mysql - GROUP BY 删除具有相同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979457/