MySql のあるテーブルから別のテーブルにデータを挿入するための実装コード
会社のレポート作成プロジェクト - 関連するテーブル構造が多数あり、最終的に使用するデータを新しいテーブルに収集することにしました。次の SQL 構文を使用する必要があります... 共有します:
Web 開発では、あるテーブルから別のテーブルにデータを挿入する必要があることがよくあります。インポート フィールドの指定も必要になる場合があります。設定するには、ターゲット テーブルに存在しないレコードをインポートするだけで済みます。これらは分割できますが、ただし、SQL を使用すると、多くのコードが節約されます。以下では、例として mysql
データベースを使用して 1 つずつ説明します。
1. 2 つのテーブルのフィールドに一貫性があり、すべてのデータを挿入したい場合は、次の方法を使用できます。
1
2
|
INSERT
INTO
目标表
SELECT
*
FROM
来源表;
insert
into
insertTest
select
*
from
insertTest2;
|
2. 指定したフィールドのみをインポートする場合は、次の方法を使用できます。
1
2
|
INSERT
INTO
目标表 (字段1, 字段2, ...)
SELECT
字段1, 字段2, ...
FROM
来源表;(这里的话字段必须保持一致)
insert
into
insertTest2(id)
select
id
from
insertTest2;
|
3. ターゲットテーブルに存在しないレコードのみをインポートする必要がある場合は、次の方法を使用できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
INSERT
INTO
目标表
(字段1, 字段2, ...)
SELECT
字段1, 字段2, ...
FROM
来源表
WHERE
not
exists (
select
*
from
目标表
where
目标表.比较字段 = 来源表.比较字段);
1>.插入多条记录:
insert
into
insertTest2
(id,
name
)
select
id,
name
from
insertTest
where
not
exists (
select
*
from
insertTest2
where
insertTest2.id=insertTest.id);
2>.插入一条记录:
insert
into
insertTest
(id,
name
)
SELECT
100,
'liudehua'
FROM
dual
WHERE
not
exists (
select
*
from
insertTest
where
insertTest.id = 100);
|