在参考帖子" Retrieving the last record in each group"时,我调整了我的查询(使用postgresql)来查找区域 MATABLE 的最后一个对象> MAZONE ,其属性 created_at 是最新的:
SELECT
p1.id,
p2.id
FROM MATABLE p1
LEFT JOIN MATABLE p2
ON (p1.zone_id = p2.zone_id AND p1.created_at < p2.created_at)
WHERE
p2.id IS NULL
AND p1.zone_id = 'MAZONE';
问题是我收到以下回复:
id | id
----+----
(0 rows)
但是,如果我像这样过滤我的表:
SELECT
p1.id,
p2.id
FROM MATABLE p1
LEFT JOIN (SELECT * FROM MATABLE WHERE zone_id='MAZONE') p2
ON (p1.zone_id = p2.zone_id AND p1.created_at < p2.created_at)
WHERE
p2.id IS NULL
AND p1.zone_id = 'MAZONE';
我得到了一个结果:
id | id
------+----
12716 |
(1 row)
对这个问题有任何想法吗?
提前致谢!