首先,我正在使用该node-postgres
模块访问节点应用程序中的数据库。
我有这个 SQL 代码,它从一个表中提取数据,该表的数据是从另一个表中提取的。
SELECT dwa_id
FROM _tasks2dwa
WHERE task_id IN
(
SELECT task_id
FROM _tasks
WHERE onetsoc_code IN
(
SELECT onetsoc_code
FROM _alternate_titles
WHERE alternate_title
ILIKE '%Beta Tester%'
)
)
我想使用这个查询client.query(query)
(请参阅文档)。我想task_id
在后端应用程序中使用中间结果(由 的值组成的表)。dwa_id
但是,我还需要最终结果,即由该后端应用程序中的值组成的表。我有一个解决方案,它为每个结果编写单独的查询,这似乎效率低下。有没有另一种更有效的方法来解决这个问题?
您需要将中间结果存储在临时表中,但无法避免这两个查询:
然后,使用与数据库的相同(物理)连接,您可以运行查询以检索中间结果:
以及您想要的实际结果:
如果您只想要(或获取)每一个
dwa_id
,另一种选择是将 task_ids 聚合到一个数组中:类似的东西: