【发布时间】:2020-04-13 13:31:48
【问题描述】:
这是一个非常明显的数据问题,但我在任何地方都找不到简单的解决方案。
使用 TYPO3 QueryBuilder,如何从每个用户有多个条目的表中为每个用户选择最近的条目?
uid user_id value crdate
1 1 0 123456
2 1 1 123400
3 2 1 123356
4 2 0 123300
我已经尝试了大量原始 SQL 方法,并最终找到了一种基于此解决方案的有效方法 - How can I SELECT rows with MAX(Column value), DISTINCT by another column in SQL?
SELECT *
FROM `tx_tablename` AS `tt`
INNER JOIN (
SELECT `uid`, `user_id`, MAX(`crdate`) AS `MaxDateTime`
FROM `tx_tablename`
GROUP BY `user_id`
) AS `groupedtt`
ON `tt`.`user_id` = `groupedtt`.`user_id`
AND `tt`.`crdate` = `groupedtt`.`MaxDateTime`
WHERE `tt`.`consent_content` = 3
但我看不到如何在 QueryBuilder 中重现这一点,因为 ->join() 语句只接受表名作为参数,而不接受 SQL,并且 ->join() 只接受一个连接条件,而不是两个.
有没有其他人找到适用于 QueryBuilder 的解决方案? 非常感谢
【问题讨论】:
标签: typo3 doctrine-dbal