В MySQL существует возможность получить данные из одной таблицы и вставить их в другую при помощи одного запроса.
Пусть есть таблица продуктов products:
| id | name | unit | count |
|---|---|---|---|
| 1 | Чай | гр | 1200 |
| 2 | Сахар | кг | 14 |
| 3 | Кофе | гр | 900 |
| 4 | Печенье | пачка | 26 |
И новая таблица products_gr, в которую нужно переместить только те продукты, которые измеряются в граммах. После вставки данных она должна выглядеть так:
| id | name | count |
|---|---|---|
| 1 | Чай | 1200 |
| 3 | Кофе | 900 |
Тогда запрос вставки данных в таблицу products_gr из таблицы products будет выглядеть следующим образом:
INSERT INTO products_gr (id, name, count) SELECT id, name, count FROM products WHERE unit = 'гр';
При составлении запроса важно контролировать, чтобы количество полей в INSERT и SELECT совпадало, а также совпадали типы полей.
Новые статьи: