2017-06-13 3 views
0

私は3つのテーブル(学生、グループ、科目)と2つの他のテーブルをブリッジ(弱い)テーブルとして持ち、 (students_groups、students_subjects)このリク.something拡張子:テーブルからすべてのレコードを取得し、それに関連する情報が他のテーブルからある場合

+-----+----------------+  +-----+-----------+ +-----+-----------+ 
| id | student_name |  | id |group_name | | id |course_name| 
+-----|---------+------|  +-----|-----------+ +-----|-----------+ 
| 1 | stunet 1  |  |1 | g1  | |1 | c1  | 
| 2 | stuent 2  |  |2 | g2  | |2 | c2  | 
| 3 | stuent 3  |  |3 |   | |3 |   | 
+-----+---------+------+  +-----+-----------+ +-----+-----------+ 

    +------------+-----------+  +------------+------------+ 
    | student_id | group_id |  | stuent_id | course_id | 
    +------------+-----------+  +------------+------------+ 
    | 1   | 1  |  | 1   | 2   | 
    | 2   | 2  |  | 3   | 1   | 
    |   |   |  +------------+------------+ 
    +------------+-----------+ 

私が欲しいのは次のとおりです。(彼らはグループに割り当てられたりしていない天気を、彼らは被験者のためregisterdかされていない天気を、)対象とグループで、すべての学生を表示します。

+-----+---------+-----------+ 
| student | group | deleted | 
+---------|-------+---------| 
|student 1| g1 |c2  | 
|student 2| g2 |   | 
|student 3|  |c1  | 
+---------+-------+---------+ 

私の以前のクエリは、グループに割り当てられ、いくつかの主題

 select students.*  
    groups.group_name, 
    modules.module_name 
    from students 
    JOIN students_groups ON students.id = students_groups.student_id 
    JOIN groups ON students_groups.group_id = groups.id 
    JOIN students_modules ON students.id = students_modules.student_id 
    JOIN modules ON students_modules.module_id = groups.id 

+-----+---------+-----------+ 
| student | group | deleted | 
+---------|-------+---------| 
|student 1| g1 |c2  | 
+-----+---------+-----------+ 

答えて

1

使用LEFT OUTERためregisterdされているだけの学生は、JOINの代わりにJOINを示しています

Select 
std.studentname, 
grp.groupname, 
crs.coursename 
FROM test.student std 
LEFT OUTER JOIN test.stu_grp_brg sgb 
on sgb.student_id=std.id 
left outer join test.group grp 
on sgb.group_id=grp.id 
left outer join test.stu_course_brg scb 
on scb.student_id=std.id 
left outer join test.course crs 
on crs.id=scb.course_id 
+0

おかげでたくさん、私が試してみました外部結合についてのいくつかのリソースを見つけるために何かを見つけることができませんでした、それを明確に説明するウェブサイトを知っていますか?ありがとうございました – george

+0

私は、あなたがgoogle "mysql join"すれば他のものも見つけます。私が学んだとき、Venn Diagramのビジュアライゼーションはかなり役に立ちました。 https://www.w3schools.com/sql/sql_join.asp https://www.techonthenet.com/mysql/joins.php – McGlothlin

+0

ありがとうございました – george

関連する問題