Saya punya tiga meja
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)
Jika saya diberi nama guru ( david
misalnya) dan student_id ( 7
misalnya) dan diminta untuk memasukkan teacher_id
ke dalam classroom
tabel berdasarkan id
pada teachers
tabel, saya akan melakukan:
insert into classroom (date, teacher_id, student_id)
select '2014-07-08', id, 7
from teachers
where teacher_name = 'david';
Sekarang, bagaimana jika saya tidak diberi id siswa secara langsung dan hanya diberi nama siswa? Misalkan saya diberi nama guru 'david' dan nama siswa 'sam'. Bagaimana cara mendapatkan tabel teacher_id
dari teachers
dan student_id
dari students
tabel dan memasukkan keduanya ke dalam classroom
tabel berdasarkan nama masing-masing?
mysql
relational-theory
Baba Kamdev
sumber
sumber
INNER JOIN
karenateachers
danstudents
tidak memiliki hubungan kunci asing.Cara termudah yang dapat Anda lakukan adalah menggunakan sub-kueri:
sumber
Ini akan menempatkan formulir hasil firsttable
value1N, value2N, value3N
dan hasil dari secondtablevalueN4
Hasil:
|username|password |name|
--- (memiliki 3 nilai, tetapi kami menggunakan satu)|id_number|Adress|tel|
--- (memiliki 3 nilai, kami menggunakan semua)|id_number|Adress|tel|username|
----- (kita mendapatkan 4 nilai: 3 dari tabel kedua dan 1 dari tabel pertama:sumber