SQLクエリで結果を取得することに関してデータベースに少し問題があります。特定の結合で結合して、それに関するすべての情報を取得したい5つのテーブルがあります。私のテーブルがあります:
レッスン
- id(int)
- lesson_name(varchar)
- id_class(int)
- id_section(int)
教師
- id(int)
- 名前(varchar)
lesson_teacher
- id(int)
- id_lesson(int)
- id_teacher(int)
クラス
- id(int)
- classe(varchar)
セクション
- id(int)
- セクション(varchar)
実のところ、私のレッスンには複数の教師がいる可能性があるため、2人の間に1-nの関係テーブルを作成しました。
レッスンごとにクラスとセクションが1つしかないため、新しいテーブルとのリンクを作成する必要はありません。
私のやり方は良いと思います。データベースで情報を選択すると、「WHERE」句を使用して1つ以上のパラメーターを指定する場合を除いて、すべて問題ありません。
これが私の質問です:
SELECT teachers.name, lessons.lesson_name, classes.classe, sections.section FROM lesson_teacher
JOIN teachers ON lesson_teacher.id_teacher = teachers.id
JOIN lesson ON lesson_teacher.id_lesson = lessons.id
LEFT OUTER JOIN sections ON lesson.id_section = sections.id
LEFT OUTER JOIN classes ON lesson.id_classe = classes.id
すべてのデータを含む4つの列があり、レッスンは適切に表示され、すべてが正常に機能します。
「WHERE」句を使用しているときに、戻り値に行がないのはなぜですか?元:
WHERE classes.classe = 'BMMP33'