2017-03-05 110 views
3

我想將下面的查詢合併到一個表中,但'union'結果合併到一個列中。我希望它創建不同的列而不是像下圖所示的一個。
我該如何做到這一點?
mysql將兩個或多個select合併到一個表中

我有這樣的查詢:

(select count(*) as col_1 
    from ref_A 
    inner join ref_B 
    on ref_A.id_A= ref_B.id_A 
    inner join ref_C 
    on ref_C.id_C= ref_B.id_C 
    group by ref_C.id_C) 
union all 

(select count(*) as col_2 
    from ref_B 
    inner join ref_C 
    on ref_C.id_C= ref_B.id_C 
    group by ref_C.id_C) 

_________________ 
| col_1 | col_2 | 
|_______|_______| 
|1  |$ 2,00 | 
----------------- 
|2  |$ 3,50 | 
----------------- 
+0

在編寫聯合查詢時,如果要在兩個select語句中保持列名相同,並且如果要區分,請爲這兩個查詢添加靜態標識符 – rahulsm

+0

@rahul_m how please?你可以舉個例子嗎? –

回答

1

試試這個,

(select count(*) as col_1, 'table 1' as ident 
    from ref_A 
    inner join ref_B 
    on ref_A.id_A= ref_B.id_A 
    inner join ref_C 
    on ref_C.id_C= ref_B.id_C 
    group by ref_C.id_C) 
union all 

(select count(*) as col_1, 'table 2' as ident 
    from ref_B 
    inner join ref_C 
    on ref_C.id_C= ref_B.id_C 
    group by ref_C.id_C) 

這裏ident它不會從兩個查詢中的數據合併,查詢的數據將得到合併,只有當有相同的行找到。