mysql - 带日期和限制的查询(DQL 中可选)

标签 mysql sql doctrine-orm doctrine dql

我在 MySQL 数据库中有一个有点复杂的查询。 我有图像上的关系:

ERD image
查询参数:id_category、日期、时间 我想要的是获得 ServicePoints,它们是:

  • 来自所选类别
  • 在选定的日期和时间内访问次数少于 ServiceCategory 中的限制
  • 按 ServicePoint ID 分组

用语言来说,我可以说我想找到在当前日期有可用槽的对象。

对我来说最好的是在 DQL 中不明确的 sql,但我当然可以转换它。

希望一切都清楚。

最佳答案

这样的事情应该有效:

 SELECT sp.id
 FROM servicepoint sp
      INNER JOIN visit vt 
            ON sp.id = vt.id_service_point
 WHERE sp.category_id = categoryId    --categoryId is query param
       AND start >= startTime          --starttime is query param
       AND end <= endTime              --endTime is query param   
 GROUP BY sp.id
 HAVING COUNT(vt.id) < sp.visit_limit;

关于mysql - 带日期和限制的查询(DQL 中可选),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798856/

相关文章:

java - 从 ResultSet 获取 MYSQL 表名

php - 在单个 PHP 输出中链接 2 个表.. 最好的方法? PHP/MySQL

mysql - 查找所有记录的共同担保人

php - 如何按频率对Sql列进行排序并选择行

mysql - 删除不适用于连接的查询

mysql - 对多个表的复杂 SQL 查询

Java和sql循环优化

php - Doctrine2 挑战,我有 OneToMany,但没有 ManyToOne,

doctrine-orm - 如何使用学说连接来导入SQL文件?

php - 与 Doctrine 实体的矩阵类型映射