Ich habe drei Tische
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)
Wenn mir der Name des Lehrers ( david
zum Beispiel) und die student_id ( 7
zum Beispiel) gegeben und ich gebeten würde, die teacher_id
in die classroom
Tabelle einzufügen, basierend auf der id
in der teachers
Tabelle, würde ich Folgendes tun:
insert into classroom (date, teacher_id, student_id)
select '2014-07-08', id, 7
from teachers
where teacher_name = 'david';
Was wäre, wenn ich nicht direkt den Studentenausweis und nur den Namen des Studenten erhalten hätte? Angenommen, ich habe den Lehrernamen 'david' und den Schülernamen 'sam' erhalten. Wie bekomme ich die teacher_id
from- teachers
Tabelle und auch student_id
die students
table und füge beide classroom
anhand ihrer jeweiligen Namen in die table ein?
mysql
relational-theory
Baba Kamdev
quelle
quelle
INNER JOIN
Seitteachers
undstudents
keine Fremdschlüsselbeziehung.Am einfachsten geht das mit Unterabfragen:
quelle
Dadurch wird
value1N, value2N, value3N
das Ergebnis aus der ersten Tabelle und das Ergebnis aus der zweiten Tabelle abgelegtvalueN4
Ergebnis:
|username|password |name|
--- (hat 3 Werte, aber wir verwenden einen)|id_number|Adress|tel|
--- (hat 3 Werte, wir verwenden alle)|id_number|Adress|tel|username|
----- (wir erhalten 4 Werte: 3 aus der zweiten Tabelle und 1 aus der ersten Tabelle:quelle