mysql - 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
解决方案
使用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'
推荐阅读
- elasticsearch - Elasticsearch:查找所有孩子都具有特定值的属性的所有父母
- java - 如何在 Java 8 中使用过滤器来忽略 int 数组和集合中的值
- wordpress - 如何在 Woocommerce 存档页面中仅为特定产品类别及其子类别显示自定义文本
- python - Python3从json响应中删除换行符
- postgresql - 在同一查询中使用两个 SUM 计算的结果作为百分比
- svg - 带有剪辑路径的 svg 文本不能正确剪辑?
- linux - 从 telegraf 到 influxdb 的输入没有测量值
- azure - 我们如何通过 Azure power shell 实现非托管磁盘的 VM 磁盘加密
- c++ - 有没有一种快速的方法来确定一个类是否是特定模板的特化?
- java - 使用 Linux 终端在 Java 中打开 PDF