簡體   English   中英

在PostgreSQL中組合兩個SELECT查詢

[英]Combine two SELECT queries in PostgreSQL

我想將兩個選擇查詢與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重用子查詢的結果。
你需要PostgreSQL 8.4+:

WITH x AS (SELECT carto_id_key FROM table1 WHERE tag_id = 16)

SELECT carto_id_key
FROM   x

UNION ALL
SELECT t2.some_other_id_key
FROM   x
JOIN   table2 t2 ON t2.carto_id_key = x.carto_id_key

你最有可能想要UNION ALL而不是UNION 不排除重復,並且這種方式更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM