0

以前の に基づいて、テーブルに挿入 する方法があるかどうか疑問に思っていました。うまく説明できているかわかりませんが、お見せしましょう。query

以下は、テーブルに何が欠けているかを示す単純な外部結合です。EMPHIREINFO

Select b.empno, b.empstate, c.startdt, c.enddt, c.cntrlgth
From EMPADDRESS b Left Outer Join EMPHIREINFO c
On b.empno = c.empno
Order By startdt

出力:

EMPNO   EMPSTATE    STARTDT     ENDDT       CNTRLGTH
9873    NY          20-MAY-11   20-NOV-11   6
7566    CA          15-OCT-11   15-OCT-12   12
7499    MN          31-OCT-11   30-APR-12   6
7369    NJ          15-JAN-12   15-JAN-13   12
5300    NY          11-AUG-12   11-AUG-13   12
7521    NJ          12-NOV-12   12-MAY-13   6
4600    NY          10-DEC-12   10-JUN-13   6
7902    CA          
7934    NY          
7900    MN          

空のスポットはすべて です(null)。これはご存知だと思いますが、それでもなお言及したかったのです。とにかく、この出力に基づいてandを挿入する方法があるかどうか疑問に思っていました。Insert Statementを手動で実行できることはわかっていますが、10行ではなく数千行のテーブルを扱っていない状況を考えています。EMPNOEMPSTATEEMPADDRESSEMPHIREINFO

ここに来る前にいくつかの調査を行いましたが、Google やこの Web サイトでの検索でさえ、手ぶらで済みました。いつものように、どんな助けも大歓迎です。

4

2 に答える 2

2

SQL では、フォームを使用してテーブルに挿入できます

insert into table1
select ...

列の数と型が一致している限り。そうでない場合は、挿入列を指定できます。

insert into table1 (col1, col5, col2)
select ...

だから、あなたのために(列の型が揃っていると仮定して):

insert into EMPHIREINFO 
Select b.empno, b.empstate, c.startdt, c.enddt, c.cntrlgth
From EMPADDRESS b Left Outer Join EMPHIREINFO c
On b.empno = c.empno
Order By startdt

ただし、自動インクリメント id 列がある場合など、列を指定する必要がある場合があります (これは一般的です)。

于 2012-12-19T19:21:12.647 に答える
1
INSERT destination_table (column1, column2,column3)
SELECT a.column1, a.column2, b.column3
FROM source_table_a AS a
INNER JOIN source_table_b AS b ON (a.key1 = b.key1)

この INSERT 構文は、結果セットを生成する他のコマンドで使用できます。

INSERT destination_table (column1, column2,column3)
EXEC usp_produce_some_output
于 2012-12-19T19:21:24.313 に答える