Способ выбрать поля из одной таблицы и вставить в другую? - PullRequest
3 голосов
/ 30 декабря 2011

У меня есть две таблицы, TableA и TableB

TableA имеет 9 полей TableB имеет 7 полей

Есть 2 поля (id и name), которые идентичны в обеих таблицах, есть лиспособ выбрать ТОЛЬКО эти два поля из таблицы А и вставить их в таблицу В?

Я посмотрел на метод 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 поля в таблицу?Если так, есть ли способ обойти это или альтернативный метод?

Спасибо

Ответы [ 3 ]

6 голосов
/ 30 декабря 2011

Попробуйте:

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

Можно предположить, что имена столбцов в TableB соответствуют TableA, в противном случае вам нужно будет ввести правильные имена.

2 голосов
/ 30 декабря 2011

Вам необходимо указать имена столбцов для TableB (и, возможно, указать TableA.id в предложении WHERE):

INSERT INTO TableB (id, name)
SELECT (id, name)
FROM TableA
WHERE TableA.id = 1
1 голос
/ 30 декабря 2011

Укажите столбцы в таблице b

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