En el SELECT...
Por ejemplo, si es una constante:
Código SQL:
Ver originalINSERT INTO profesores (id_persona, activo)
SELECT id_persona, 1
FROM personas
WHERE dni="a";
O bien de una función:
Código SQL:
Ver originalINSERT INTO profesores (id_persona, fecha_alta)
SELECT id_persona, CURDATE()
FROM personas
WHERE dni="a";
O de un JOIN:
Código SQL:
Ver originalINSERT INTO profesores (id_persona, id_titulo)
SELECT P.id_persona, C.id_titulo
FROM personas P INNER JOIN titulo_persona C ON P.id_persona = C.id_persona
WHERE dni="a";
Todo depende de lo que quieras conseguir, y sólo debes cumplir lo que ya te dije:
Cita: 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.