У меня три стола
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)
Если бы я получил имя учителя ( david
к примеру) и student_id ( 7
к примеру) и попросил , чтобы вставить teacher_id
в classroom
таблицу , основанной на id
в teachers
таблице, я хотел бы сделать:
insert into classroom (date, teacher_id, student_id)
select '2014-07-08', id, 7
from teachers
where teacher_name = 'david';
Теперь, что, если мне не дали идентификационный номер студента непосредственно и дали только имя студента? Предположим, мне дали имя учителя «Давид» и имя студента «Сэм». Как я могу получить teacher_id
из teachers
таблицы, а также student_id
из students
таблицы и вставить оба в classroom
таблицу на основе их соответствующих имен?
mysql
relational-theory
Баба Камдев
источник
источник
INNER JOIN
тех порteachers
и неstudents
иметь отношения с внешним ключом.Самый простой способ сделать это - использовать подзапросы:
источник
Это поместит форму результата в первую таблицу
value1N, value2N, value3N
и результат из второй таблицыvalueN4
Результат:
|username|password |name|
--- (имеет 3 значения, но мы используем одно)|id_number|Adress|tel|
--- (имеет 3 значения, мы используем все)|id_number|Adress|tel|username|
----- (мы получаем 4 значения: 3 из второй таблицы и 1 из первой таблицы:источник