3

TableA と TableB の 2 つのテーブルがあります。

TableA には 9 つのフィールドがあります TableB には 7 つのフィールドがあります

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

このステートメントを使用して INSERT INTO... SELECT メソッドを見てきました。

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

しかし、次のエラーが表示されます。

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

このエラーにより、テーブルに 2 つのフィールドしか挿入できないと思いますか? もしそうなら、これを回避する方法または代替方法はありますか?

ありがとう

4

3 に答える 3

6

試す:

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

TableB の列名が TableA と一致すると仮定する必要があります。そうでない場合は、正しい名前を入力する必要があります。

于 2011-12-30T19:34:25.487 に答える
2

TableB の列名を指定する必要があります (場合によっては、WHERE 句で TableA.id を指定します)。

INSERT INTO TableB (id, name)
SELECT (id, name)
FROM TableA
WHERE TableA.id = 1
于 2011-12-30T19:35:22.523 に答える
1

表 b の列を指定します

INSERT INTO TableB (id, name)
SELECT id, name
FROM TableA
WHERE id = 1
于 2011-12-30T19:42:08.687 に答える