簡體   English   中英

如何在PostgreSQL中通過COLUMN合並/合並兩個選擇查詢?

[英]How to combine/merge two select queries by COLUMN in PostgreSQL?

我想,如圖所示柱,而不是由行合並/合並兩個選擇查詢這里與UNION。

假設我有

SELECT attr1, attr2 FROM table1

SELECT attr1, attr2 FROM table2

注意,兩個表具有相同的屬性名稱。

我想要以下幾列的結果:

attr1_table1, attr2_table1, attr1_table2, attr2_table2

編輯(對於下一個,因為外部聯接可以正常工作):

我的第一個Select返回類似以下內容:

id  attr1  attr2
1   3      5
2   4      6

和我的第二選擇

id  attr1 attr2
1   7     9
2   8     10

我期望的結果是:

id  attr1 attr2 attr1 attr2
1   3     5     7     9
2   4     6     8     10

謝謝

交叉聯接將非常危險,因為它會產生大量數據。 例如,如果Table1和Table2每個都有1000行,那么交叉連接的結果將是1,000,000行!

但是,我假設您要排隊匹配的行。 因此,請使用以下命令:

select  COALESCE(t1.id, t2.id) as id,
        t1.attr1, t1.attr2, t2.attr1, t2.attr2
from    Table1 t1
        full outer join Table2 t2 on
            t2.id = t1.id

full outer join意味着這還將返回未找到匹配項的行。

您的問題相當模糊。 但是一個可能的答案是cross join

select t1.attr1 as attr1_1, t1.attr2 as attr2_1,
       t2.attr1 as attr1_2, t2.attr2 as attr2_2
from table1 t1 cross join
     table2 t2;

暫無
暫無

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

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