GROUP BY对多列MySQL进行查询

时间:2014-02-13 12:39:53

标签: php mysql

我有两张1-M关系表。 1)com_event(1)。 2)com_event_schedules(m)

我想获取所有未来事件的所有时间表。以下是不符合我的查询的条件。

  1. 如果schedules.location_id和schedule.date_of_service相同,则此类记录应为GROUP BY。我写了以下查询以下内容。但它在某些情况下无效。那些场景是。
  2. i)如果date_of_service相同但位置不同,它仍然是分组记录。 ii)如果location_id相同且date_of_service不同,则将未来日期时间表与当前日期时间表分组。

    以下是我的查询:

    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。

1 个答案:

答案 0 :(得分:0)

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

左连接不按顺序排列,因为您实际上是对计划内容进行过滤。