我遇到了使用mysql和mphpmyadmin的小任务,我需要将两个表记录组合在一个表中,彼此之后...但是也希望结果表明来自的表,如下所示:
table1:表名:" names1"
id code name number
1 XA Mike 101
2 DA Stel 344
3 MB Dan 434
4 TR Tina 321
table2:表名:" names2"
id code name number
1 DC Man 121
2 QZ Dan 989
3 VN Was 912
我需要的是将它们组合在一个表中,选择,查看...在我的脚本中使用的任何语句......这样的事情:
tablename code name number
names1 XA Mike 101
names1 DA Stel 344
names1 MB Dan 434
names1 TR Tina 321
names2 DC Man 121
names2 QZ Dan 989
names2 VN Was 912
尝试加入和联盟,失败了,你建议创建一个视图吗?以及你将如何建议完成?
答案 0 :(得分:1)
select code, name, number, 'names1' as tablename from table1
union
select code, name, number, 'names2' as tablename from table2;
还要研究union vs union all
之间的区别,因为它与dupes有关(通常用于你的其他联合,如查询)
答案 1 :(得分:1)
如果您想将它们合并到一个结果集中,那么您将使用union all
(如@Satty建议的那样)。
但是,如果您想在一个表格中使用它们,则可以使用create table as
:
create table names as
select code, name, number from names1 union all
select code, name, number from names2;
你也可以使用相同的逻辑创建一个视图,但问题显然是"一个表"。
答案 2 :(得分:1)
如果您想为此创建一个VIEW:
CREATE VIEW names3 AS
(SELECT code,
name,
number,
'names1' as tablename
from names1)
UNION
(select code,
name,
number,
'names2' as tablename
from names2);
Here是小提琴。