これは、いくつかの簡単な結合で実現できます。
特定の教師に関連付けられているすべての生徒を検索する場合は、最初にteacher
の行を取得します。 。次に、classes
に参加します 先生が教えていること。最後に、students
に参加します それらのクラスにあります。
これは多対多の関係として知られており、データベースの重要な概念です。
select
t.student_name, -- I suspect this col might actually be named teacher_name
s.student_name,
from
-- Find the classes that a teacher teaches
teacher_table t join class_table c on (t.class_id=c.class_id)
-- Find the students in those classes
join student_table s on (s.class_id=c.class_id)
where
t.student_id = ? -- Again, I suspect this should be "teacher_id"