2017-06-13 86 views
0

我有三張表格(學生,團體,主題)和另外兩張表格作爲橋樑(弱)表格來連接學生與另外兩張表格(students_groups,students_subjects).something LIK這樣的:從表格中獲取所有記錄,並從其他表格中獲取與其相關的信息

+-----+----------------+  +-----+-----------+ +-----+-----------+ 
| 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  | 
+---------+-------+---------+ 

我前面的查詢只顯示被分配到一組,並registerd一些主題

 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 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

我想嘗試以下網站之一獲取更多信息。你也可以找到其他人,如果你谷歌「MySQL加入」。當我學習時,Venn Diagram可視化非常有用。 https://www.w3schools.com/sql/sql_join.asp https://www.techonthenet.com/mysql/joins.php – McGlothlin

+0

非常感謝你 – george

相關問題