mysql将两个或多个select合并到一个表中

问题描述:

我想将下面的查询合并到一个表中,但'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?你可以举个例子吗? –

试试这个,

(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它不会从两个查询中的数据合并,查询的数据将得到合并,只有当有相同的行找到。