に新しい行を挿入し、 からのデータで行を部分的にロードしようとしtable a
ていますtable b
。b.id
フィールドが列に存在しない場合にのみ、新しい行を挿入したいと思いa.id
ます。
ここに私のテーブルがあります:
table_a table_b
--------- -----------
id id
first_name first_name
country middle_name
last_name last_name
これが私のコードです:
INSERT INTO table_a a
SELECT b.id, b.first_name,b. last_name
FROM table_b b WHERE b.id <> a.id
質問: insert select ステートメントを使用してこれを行うにはどうすればよいですか? これを私の現在の状況と比較しやすくするために、ある表にミドルネームを、別の表に国を含めたことに注意してください. フィールドを「マップ」する方法はありますか? または、insert select ステートメントに挿入する値の数がターゲット テーブルとまったく同じであることを確認する必要がありますか? それとも、一致する列名を探して、一致する列のみを更新しますか?