以下 PostgreSQL SELECT 查询总是返回一个结果,因为 performance.query_plan
表有多个具有不同 TIMESTAMP
值的条目:
SELECT * FROM
performance.query q,
performance.query_plan AS qp
WHERE
q.idx = qp.queryidx
AND q.newplanneeded > qp.ts
LIMIT 1;
在 performance.query_plan
表中的这些条目中,我只对具有最新时间戳值的条目感兴趣(存储在 q.newplanneeded
列中)。我如何表达 WHERE 条件中的 qp.ts
应该等于 performance.query_plan
表中最新添加的行?
最佳答案
SELECT (q).*, (qp).*
FROM (
SELECT q,
(
SELECT qp
FROM query_plan qp
WHERE qp.queryidx = q.idx
ORDER BY
ts DESC
LIMIT 1
) qp
FROM query q
) qv
WHERE (q).newplanneeded > (qp).ts
ORDER BY
(q).idx
LIMIT 1
关于sql - 从 PostgreSQL 表中查找具有最新日期的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170139/