我在 MySQL 数据库中有一个有点复杂的查询。 我有图像上的关系:
查询参数: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/