Para tener en cuenta:
Esto esta malo
Código:
INSERT INTO tabla (campo1, campo2, campo3) VALUES (
SELECT campo1, 'Hola', 3 FROM otra_tabla
)
Esto esta bien
Código:
INSERT INTO tabla (campo1, campo2, campo3) (
SELECT campo1, 'Hola', 3 FROM otra_tabla
)
Me quede dandole vueltas porque efectivamente el VALUES no va en la consulta (
como mal te habia dicho) y por esta razon seguramente no funcionaba.
En tu caso particular si tenias registros tendrias que haber hecho algo como esto:
Código:
INSERT INTO tabla (campo1, campo2, campo3) (
SELECT campo1, 'Hola', 3
FROM otra_tabla
WHERE campo1 NOT IN (SELECT campo1 FROM tabla)
)
En donde sacas todos los ID (en este caso campo1) que no esten en la tabla que vas a llenar.
Mis disculpas del caso por el mal consejo.
Suerte!