0

それぞれに800行を超える2つのテーブルがあります.テーブル名は「教育」と「衛生」です.列名「ID」は両方のテーブルで共通です.今、これらの両方のテーブルを完全外部結合として結合したいと思います.このテーブルの結果を新しいテーブルとして保存したい.非常に簡単に結合できますが、それらのデータを新しいテーブルとして保存する方法.助けてください.

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

各テーブルに約 30 列あります。そのため、新しいテーブルのテーブル スキーマを明示的に作成することはできません。

両方のテーブルのすべての列が必要です。各800行の20個のテーブルがあります。この20個のテーブルから、「ID」をすべて主キーとして1つのマスターテーブルを作成したいと考えています。

4

2 に答える 2

1

サンプルコード:

表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')

表2

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

編集

両方のテーブルに存在する列 ID があるため、 SELECT *は機能しません。したがって、上記の解決策はうまくいきます。

編集:

1-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 に答える