mySQL - Inserir em três tabelas

Eu perguntei recentementeisto questão.

Eu tenho um banco de dados relacional com três tabelas. O primeiro contém id que está relacionado ao segundo. O segundo contém id que se relacionam com o terceiro. O terceiro contém os resultados que eu estou depois.

É possível com uma única consulta consultar um id na primeira tabela que forneça todos os resultados da terceira tabela relacionada a ela?

Minha solução escolhida foi:

select * from table1 t1 unir table2 t2 em t1.t2ref = t2.id unir table3 t3 em t2.t3ref = t3.id

Adicione uma cláusula where para procurar determinadas linhas na tabela1

onde t1.field = 'valor'

Minha nova pergunta é:

Eu percebi que eu preciso inserir nas três tabelas também. O que estou a tratar é um sistema de reservas. É possível escrever uma consulta que insere em três tabelas diretamente após consultá-las (usando joins?).

Outra consideração que tenho é que devo usar as transações para garantir que duas consultas sejam executadas ao mesmo tempo ... ambos acham que os ids estão "não reservados" e, em seguida, resultando em uma reserva dupla ou há uma maneira mais simples?

questionAnswers(3)

yourAnswerToTheQuestion