SQL2 февраля, 2020

Как вставить данные из одной таблицы в другую в MySQL?

В MySQL существует возможность получить данные из одной таблицы и вставить их в другую при помощи одного запроса.

Пусть есть таблица продуктов products:

idnameunitcount
1Чайгр1200
2Сахаркг14
3Кофегр900
4Печеньепачка26

И новая таблица products_gr, в которую нужно переместить только те продукты, которые измеряются в граммах. После вставки данных она должна выглядеть так:

idnamecount
1Чай1200
3Кофе900

Тогда запрос вставки данных в таблицу products_gr из таблицы products будет выглядеть следующим образом:

INSERT INTO products_gr (id, name, count)
SELECT id, name, count FROM products WHERE unit = 'гр';

При составлении запроса важно контролировать, чтобы количество полей в INSERT и SELECT совпадало, а также совпадали типы полей.