首页 > 解决方案 > MySQL/doctrine 查询检索所有大于日期的元素

问题描述

我有一个 Symfony 项目,其中包含 2 个实体Session 1 <-> n Timeslots(以及更多其他实体)。

我的问题是我找不到可以检索所有时间段都大于给定日期的会话列表的查询。是否可以在一个查询中完成?

我已经尝试过使用 MIN (简化版本,没有与其他实体的额外 JOIN ):

SELECT s.id 
FROM session s
JOIN timeslot t ON t.sessionId = s.id
HAVING MIN(t.timelotDate) > '2019-05-05';

但我没有用这个查询检索任何元素。

我为它制作了一个 sqlfiddle:
http ://www.sqlfiddle.com/#!9/4b485b/5

标签: mysqlsqlgroup-bydoctrine

解决方案


使用max()group by

SELECT s.id 
FROM session s
JOIN timeslot t ON t.sessionId = s.id group by s.id
having max(t.timelotDate) > '2019-05-05'

推荐阅读