Как правило, когда вы используете результаты запроса SELECT в качестве значений для запроса INSERT, вы отбрасываете ключевое слово VALUES. Это верно и для MySQL :
INSERT INTO t1
SELECT * FROM t1;
Приведенная выше версия хрупка, поскольку в значительной степени зависит от количества, порядка и типа столбцов в источнике ицелевые таблицы одинаковы (по-видимому, в большинстве реальных случаев вы не будете вставлять значения, взятые из той же таблицы ).
Я рекомендую явно указывать столбцы при использовании INSERT..SELECT в качествеЛучшая практика:
INSERT INTO t1(col1, col2, col3)
SELECT colA, colB, colC FROM t2