我有两个具有 1-M 关系的表。 1)com_事件(1)。 2) com_event_schedules (米)
我想获取所有 future 事件的所有时间表。以下是不适用于我的查询的条件。
- 如果schedules.location_id和schedule.date_of_service相同,这样的记录应该是GROUP BY。我为以下内容编写了以下查询。但在某些场景下它不起作用。这些场景是。
i) 如果服务日期相同但位置不同,则仍然对记录进行分组。 ii) 如果 location_id 相同且 date_of_service 不同,则将 future 日期安排与当前日期安排分组。
以下是我的查询:
SELECT schedules.*
FROM com_event event
LEFT JOIN com_event_schedules schedules ON event.id=schedules.event_id
WHERE schedules.date_of_service > CURDATE()
AND deleted=0
GROUP BY schedules.location_id,
schedules.date_of_service
mysql查询中的任何解决方案。 我的要求是,仅当 Schedules.date_of_service 和 Schedules.location_id 相同时,记录才应为 GROUP。
最佳答案
GROUP BY 用于对查询结果进行分组,并计算该分组的计数、总和等。
我不确定,但我认为您想要一个不同的结果集。
SELECT DISTINCT schedules.*
FROM com_event event
JOIN com_event_schedules schedules ON event.id=schedules.event_id
WHERE schedules.date_of_service > CURDATE()
AND deleted=0
左连接不按顺序排列,因为您实际上是根据时间表的内容进行过滤。
关于php - MySQL 多列 GROUP BY 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754530/