Я не знаю, что вы пытаетесь сделать с помощью customer_information, но если вы просто хотите перенести недублированный набор данных из одной таблицы в другую, это сработает:
INSERT IGNORE INTO table2(field1, field2, ... fieldx)
SELECT DISTINCT field1, field2, ... fieldx
FROM table1;
DISTINCT
позаботится о строках, которые являются точными дубликатами. Но если у вас есть строки, которые являются только частичными дубликатами (например, с одинаковыми фамилиями и именами, но с другим адресом электронной почты), тогда IGNORE
может помочь. Если вы поместите уникальный индекс в table2 (фамилия, имя), то IGNORE позаботится о том, чтобы была вставлена только первая запись с lastnameX, firstnameY из таблицы1. Конечно, вам может не понравиться, какая запись пары частичных дубликатов выбрана.
ETA
Теперь, когда вы обновили свой вопрос, кажется, что вы хотите поместить значения нескольких строк в одно поле. Это, вообще говоря, плохая идея, потому что когда вы денормализуете свои данные таким образом, вы делаете их гораздо менее доступными. Кроме того, если вы группируете по (фамилия, имя), не будет имен во всех именах. Из-за этого в моем примере вместо этого используются программы mailmail. В любом случае, если вам действительно нужно это сделать, вот как:
INSERT INTO table2(lastname, firstname, allemails)
SELECT lastname, firstname, GROUP_CONCAT(email) as allemails
FROM table1
GROUP BY lastname, firstname;