Un INSERT
declaración puede utilizar las filas devueltas por un SELECT
declaración como fuente para insertar datos. Así que construya el SELECT
apropiado declaración de posts_temp
y authors
y luego ya está:
INSERT INTO posts(text, author_id)
SELECT pt.post, a.id
FROM posts_temp pt
JOIN authors a ON a.name = pt.author;