0

我有两个表,每个表超过 800 行。表名是“教育”和“卫生”。列名“ID”在两个表中都很常见。现在我想将这两个表作为完全外连接加入,我想将此表的结果保存为新表。我可以很容易地加入它,但是如何将这些数据保存为新表。请帮帮我。

select * into bc  from education e join sanitation s on e.id=s.id

我在每个表中有大约 30 列。因此我无法为新表显式创建表模式。

我想要两个表中的所有列。我有 20 个表,每行 800 行。从这 20 个表中,我想制作一个主表,将“ID”作为主键。

4

2 回答 2

1

示例代码:

表一:

create table dummy1(
id int , fname varchar(50)
)
insert into dummy1 (id,fname) values (1,'aaa')
insert into dummy1 (id,fname) values (2,'bbb')
insert into dummy1 (id,fname) values (3,'ccc')
insert into dummy1 (id,fname) values (3,'ccc')

表二

create table dummy2(
id int , lname varchar(50)
)
insert into dummy2 (id,lname)  values (1,'abc')
insert into dummy2 (id,lname)  values (2,'pqr')
insert into dummy2 (id,lname)  values (3,'mno')

现在创建新表 3

create table dummy3(
id int , fname varchar(50),lname varchar(50)
)

表 3 的插入查询看起来像

insert into dummy3 (id,fname,lname)
 (select a.id,a.fname,b.lname from dummy1  a inner join dummy2 b on a.id=b.id) 

表 3 将包含 table1、table2 数据

于 2012-07-31T12:13:30.877 回答
0

关注以下:

SELECT  t1.Column1, t2.Columnx
INTO    DestinationTable
FROm    education  t1
        INNER JOIN sanitation  t2 ON t1.Id = t2.Id

编辑

SELECT *对您不起作用,因为您在两个表中都有一个列 ID。所以上面的解决方案会对你有用。

编辑:

1-您可以暂时重命名一个表中的 Id 列,然后尝试

2-  SELECT   *
    INTO    DestinationTable
    FROm    education  t1
            INNER JOIN sanitation  t2 ON t1.Id = t2.Id

3-将列名恢复为 Id。

于 2012-07-31T11:32:15.680 回答