2011-12-30 4 views
2

私は2つのテーブル、テーブルAとテーブルBを持っているあるテーブルから別のテーブルにフィールドをSELECTしINSERTする方法はありますか?

TableAの持っている9つの分野 TableBの持つ7つのフィールド

は、両方のテーブルで同一である2つのフィールド(idとname)があり、ONLYを選択する方法がありますTableAのこれら2つのフィールドをTableBに挿入しますか?

私はこの文を使用して... INSERT INTOでSELECTメソッドを見てきました

:私はこのエラーは私ができるようにされていないと仮定し

#1136 - Column count doesn't match value count at row 1 

INSERT INTO TableB 
SELECT id, name 
FROM TableA 
WHERE id = 1 

しかし、私は次のエラーを取得しますテーブルに2つのフィールドのみを挿入しますか?もしそうなら、これを回避する方法や別の方法がありますか?

おかげ

答えて

5

試してみてください。

INSERT INTO TableB(id, name) 
SELECT id, name FROM TableA where id = 1; 

一つは、TableBのマッチテーブルAの列名がそうでなければ、あなたが右の名前に置く必要があるということを前提としなければなりません。

+0

おかげbのテーブルの列を指定する - これは何ですか必要だった :) – Bernard

2

あなたがテーブルBの列名を指定します(そしておそらくWHERE句でTableA.idを指定)する必要があります。

INSERT INTO TableB (id, name) 
SELECT (id, name) 
FROM TableA 
WHERE TableA.id = 1 
1

INSERT INTO TableB (id, name) 
SELECT id, name 
FROM TableA 
WHERE id = 1 
関連する問題