Способ ВЫБРАТЬ поля из одной таблицы и ВСТАВИТЬ в другую?

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

Таблица A имеет 9 полей Таблица B имеет 7 полей

Есть 2 поля (id и name), которые идентичны в обеих таблицах, есть ли способ выбрать ТОЛЬКО эти два поля из TableA и вставить их в 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 поля? Если да, то есть ли способ обойти этот или альтернативный метод?

Спасибо


person Bernard    schedule 30.12.2011    source источник


Ответы (3)


Пытаться:

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

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

person Karlson    schedule 30.12.2011
comment
Спасибо - это то, что мне было нужно :) - person Bernard; 31.12.2011

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

INSERT INTO TableB (id, name)
SELECT (id, name)
FROM TableA
WHERE TableA.id = 1
person checker    schedule 30.12.2011

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

INSERT INTO TableB (id, name)
SELECT id, name
FROM TableA
WHERE id = 1
person radarbob    schedule 30.12.2011