我想用 UNION
组合两个选择查询。
如何在第二个 SELECT
中使用第一个 SELECT
的结果?
(SELECT carto_id_key FROM table1
WHERE tag_id = 16)
UNION
(SELECT * FROM table2
WHERE carto_id_key = <the carto_id result from above> )
最佳答案
使用 CTE在多个 SELECT
中重用子查询的结果。
WITH cte AS (SELECT carto_id_key FROM table1 WHERE tag_id = 16)
SELECT carto_id_key
FROM cte
UNION ALL
SELECT t2.some_other_id_key
FROM cte
JOIN table2 t2 ON t2.carto_id_key = ctex.carto_id_key
你很可能想要 UNION ALL
而不是 UNION
。不排除重复项并且这种方式更快。</p>
关于sql - 在 PostgreSQL 中组合两个 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849423/