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 |
-----------------
答
试试这个,
(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
它不会从两个查询中的数据合并,查询的数据将得到合并,只有当有相同的行找到。
在编写联合查询时,如果要在两个select语句中保持列名相同,并且如果要区分,请为这两个查询添加静态标识符 – rahulsm
@rahul_m how please?你可以举个例子吗? –