sql - 如何在内部查询列中使用外部查询列
问题描述
我正在尝试在下面运行 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 查询中引用最近查看的列。有没有办法克服这个?
解决方案
INNER JOIN LATERAL
如果要引用以前FROM
列表条目中的列,则必须使用。
这从 PostgreSQL 9.3 开始可用。
推荐阅读
- c++ - 打印出用户输入和条件之间可以被 2 和 3 整除的所有数字。while 循环要求另一个数字
- java - Java - 运行子进程在本地工作,但在 Heroku 上运行时因“管道损坏”而失败?
- pyspark - 从 pyspark 列中删除十进制值
- c++ - 将可执行文件加载到字符向量后的数据无效
- amazon-athena - Athena 分区投影和混合文件模式
- azure - App Insights 未从本地计算机发送
- python - 在python中不使用gcd查找整数列表的最小公倍数
- javascript - 在节点中返回承诺时出现 UnhandledPromiseRejectionWarning
- r - 在 R 中使用 pdf 函数模拟随机抽奖
- hive - 我认为我的 hql 是正确的,为什么我不能运行它?