php - MySQL 多列 GROUP BY 查询

标签 php mysql

我有两个具有 1-M 关系的表。 1)com_事件(1)。 2) com_event_schedules (米)

我想获取所有 future 事件的所有时间表。以下是不适用于我的查询的条件。

  1. 如果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/

相关文章:

php - Laravel 异常处理程序还会记录请求

php - 有没有办法访问以前创建的 div?

php - 异常 'PDOException' 消息 'could not find driver' SQLSRV Laravel Artisan CLI

php - 如何在php中做href

php - Codeigniter 多数据库连接

javascript - 如何使用 URL 参数过滤表中的结果

mysql - 如何根据另一列重置 id 列

PHP/mySQL 计算每个国家代码的总评论数

PHP Paypal IPN 集成类不记录 IPN 结果

php - 通过连接从两个表中获取数据