Si te fijas el manual de referencia de MySQL, Oracle, SQL Server y dfemás, esta forma es aceptada por todos ellos:
   
Código SQL:
Ver original- INSERT INTO tabla1(campo1, campo2, campo3, ... campo N) 
- SELECT campo1, campo2, campo3, ...campoN 
- FROM tabla2 
- [WHERE loquesea] 
En tanto el número y orden de las columnas del SELECT coincida con el número y orden de los datos de la tabla del INSERT, se insertará lo devuelto por el SELECT. 
Nota: al usar VALUES, cada VALUES sólo acepta un único registro a insertar, mientras que el INSERT... SELECT inserta masivamente todo lo que el SELECT devuelva.