Eu tenho três mesas
students table
------------------------------------
id(PK, A_I) | student_name | nationality
teachers table
------------------------------------
id(PK, A_I) | teacher_name | email
classroom table
----------------------
id(PK, A_I) | date | teacher_id(FK to teachers.id) | student_id(FK to students.id)
Se eu foi dado o nome do professor ( davidpor exemplo) e student_id ( 7por exemplo) e pediu para inserir o teacher_idna classroomtabela com base no idna teachersmesa, eu faria:
insert into classroom (date, teacher_id, student_id)
select '2014-07-08', id, 7
from teachers
where teacher_name = 'david';
Agora, e se eu não receber o ID do aluno diretamente e apenas o nome do aluno? Suponha que me deram o nome do professor 'david' e o nome do aluno 'sam'. Como obtenho a tabela teacher_idfrom teacherse também student_idda studentstabela e insiro ambos na classroomtabela com base em seus respectivos nomes?