Как в MySQL скопировать данные из одной таблицы в другую?
Итак, у вас есть две таблицы MySQL и вам нужно взять один из столбцов из одной таблицы и скопировать его в другую, учитывая id записей в обеих таблицах.
К примеру, у нас есть две таблицы People и Phones. Пусть первая имеет 2 колонки: id человека и имя человека. А вторая - Phones тоже - имеет две колонки id человека и номер телефона.
Пусть так выглядит таблица People
id | name |
2 | Misha |
3 | Kolya |
4 | Denis |
5 | David |
Пусть так выглядит таблица Phones
man_id | phone |
2 | 123-12-31 |
3 | 546-46-45 |
4 | 8-898-546-44-65 |
5 | 456-88-46 |
А результ мы хотим такого вида
id | name | phone |
2 | Misha | 123-12-31 |
3 | Kolya | 546-46-45 |
4 | Denis | 8-898-546-44-65 |
5 | David | 456-88-46 |
Для начала создадим в таблице People новый столбец phone.
ALTER TABLE `People` ADD `phone` INT NOT NULL
В данном случаем можно было бы просто внести эти 4 номера телефона вручную, но если бы записей было несколько сотен - лучше автоматизировать этот процесс одним простым запросом:
UPDATE `People` SET `phone` = ( SELECT `phone` FROM `Phones` WHERE Phones.man_id = People.id GROUP BY People.id )