首页 > 解决方案 > 如何在内部查询列中使用外部查询列

问题描述

我正在尝试在下面运行 postgresql 查询

SELECT *
FROM user_follow uf
       INNER JOIN (SELECT uplr.post, COUNT(*)
                   FROM user_post_like_relation uplr
                   WHERE uplr.category = 'like' AND uf.recently_viewed < uplr.created_at . //CANNOT reference uf
                     AND clicked = true
                   GROUP BY uplr.post) uplr
    ON uplr.post = uf.post
INNER JOIN post p ON uf.post = p.id

不幸的是,我无法uf在 INNER JOIN 查询中引用,但我必须加入并在 JOIN 查询中引用最近查看的列。有没有办法克服这个?

标签: sqlpostgresql

解决方案


INNER JOIN LATERAL如果要引用以前FROM列表条目中的列,则必须使用。

这从 PostgreSQL 9.3 开始可用。


推荐阅读