是它查看或加入我需要的这个mysql exersice

时间:2016-07-10 15:48:08

标签: php mysql phpmyadmin

我遇到了使用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

尝试加入和联盟,失败了,你建议创建一个视图吗?以及你将如何建议完成?

3 个答案:

答案 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是小提琴。