Twoje zapytanie powinno wyglądać tak:
INSERT INTO newDatabase.table1 (Column1, Column2)
SELECT column1, column2 FROM oldDatabase.table1;
AKTUALIZUJ
Ponieważ ta odpowiedź zyskuje więcej uwagi, niż się spodziewałem, powinienem ją rozwinąć. Przede wszystkim może to nie wynikać z samej odpowiedzi, ale kolumny nie muszą mieć tej samej nazwy. Tak więc zadziała również poniższe (zakładając, że kolumny istnieją w odpowiednich tabelach):
INSERT INTO newDatabase.table1 (Column1, Column2)
SELECT SomeOtherColumn, MoreColumns FROM oldDatabase.table1;
Co więcej, nie muszą nawet być prawdziwymi kolumnami w tabeli. Jednym z przykładów przekształcania danych, którego używam dość często, jest:
INSERT INTO newDatabase.users (name, city, email, username, added_by)
SELECT CONCAT(first_name, ' ', last_name), 'Asgard', CONCAT(first_name,'@gmail.com'), CONCAT(first_name,last_name), 'Damir' FROM oldDatabase.old_users;
Tak więc, jak może być teraz bardziej oczywiste, reguła jest taka, że dopóki zapytanie SELECT zwraca taką samą liczbę kolumn, jaka potrzebuje zapytanie INSERT, może być użyte zamiast VALUES.