检索每个组中具有特定值id的最后一条记录-MySQL或DQL

时间:2019-07-17 01:20:24

标签: mysql sql group-by doctrine-orm greatest-n-per-group

有一个包含数据的表格文档,如下所示:

Id   member_id  type    date
-----------------------------
1      5         1     2019-07-16
2      4         1     2019-07-12
3      5         2     2019-07-15
4      5         3     2019-07-16
5      3         1     2019-07-14
6      4         2     2019-07-16
7      5         1     2019-07-12
8      4         2     2019-07-13

我正在尝试从特定的member_id 中检索最后一种日期为的每种类型中的一种。

我已经尝试了以下方法作为Retrieving the last record in each group - MySQL的解决方案,但它没有按member_id进行过滤,而是显示所有成员中每种类型的最后一个:

SELECT d1.*
FROM document d1
  LEFT OUTER JOIN document d2
    ON (d1.type = d2.type AND d1.date < d2.date)
WHERE d2.type IS NULL

我期望输出(如果要通过member_id = 5进行过滤):

Id   member_id  type    date
-----------------------------
 1      5         1     2019-07-16
 3      5         2     2019-07-15
 4      5         3     2019-07-16

但实际输出是:

Id   member_id  type    date
-----------------------------
 1      5         1     2019-07-16
 4      5         3     2019-07-16
 6      4         2     2019-07-16

我正在使用教义,因此,如果有任何可以传递给DQL或教义查询构建的解决方案,我将不胜感激。

0 个答案:

没有答案