我不确定我的问题是否正确,但这就是我要尝试的方法。
我有一个表errorlog
和一个字段link
,并且我有一个函数http_get
(基于pgsql-http
,该函数为我提供{{ 1}})
我相信我需要像这样进行横向连接:
status
但是它没有给我任何结果。如何将这样的功能应用于表?
link
表:
SELECT
el.link,
hg.status
FROM
errorlog AS el
LEFT OUTER JOIN LATERAL http_get(el.link) AS hg ON true
WHERE el.link IS NOT NULL ;
errorlog
https://github.com/pramsey/pgsql-http
更新: 我已经尝试过以下查询:
+----+---------------------+
| id | link |
+----+---------------------+
| 1 | http://www.test.com |
+----+---------------------+
| 2 | http://www.link.com |
+----+---------------------+
结果:pgsql-http:
SELECT
el.link,
(http_get(el.link)).status
FROM
errorlog AS el
WHERE el.link IS NOT NULL ;
结果:No records found.
但是,这可行:
SELECT
el.link,
hg.status
FROM
errorlog AS el, http_get(el.link) AS hg
WHERE el.link IS NOT NULL ;
答案 0 :(得分:0)
为什么不简单地在SELECT
子句中调用该函数?
SELECT
el.link,
(http_get(el.link)).status
FROM
errorlog AS el
WHERE el.link IS NOT NULL ;
此外,函数调用始终以LATERAL
的方式隐式执行,而LEFT OUTER JOIN
在这里基本上是无用的,因此,如果您坚持横向执行函数,请执行以下操作:
SELECT
el.link,
hg.status
FROM
errorlog AS el, http_get(el.link) AS hg
WHERE el.link IS NOT NULL ;