參考網址: https://blog.csdn.net/zou15093087438/article/details/79226394
1. 外連線可分為:左連線、右連線、完全外連線。
a. 左連線 left join或 left outer join
SQL語句:select * from student left join course onstudent.ID=course.ID
{左外連線包含left join左表所有行,如果左表中某行在右表沒有匹配,則結果中對應行右表的部分全部為空(NULL).
注:此時我們不能說結果的行數等於左表資料的行數。當然此處查詢結果的行數等於左表資料的行數,因為左右兩表此時為一對一關係。}
b. 右連線 right join或 right outer join
SQL語句:select * from student right join course onstudent.ID=course.ID
{右外連線包含right join右表所有行,如果左表中某行在右表沒有匹配,則結果中對應左表的部分全部為空(NULL)。
注:同樣此時我們不能說結果的行數等於右表的行數。當然此處查詢結果的行數等於左表資料的行數,因為左右兩表此時為一對一關係。}
c. 完全外連線 full join或 full outer join
SQL語句:select * from student full join course onstudent.ID=course.ID
{完全外連線包含full join左右兩表中所有的行,如果右表中某行在左表中沒有匹配,則結果中對應行右表的部分全部為空(NULL),如果左表中某行在右表中沒有匹配,則結果中對應行左表的部分全部為空(NULL)。}
2. 內連線join 或 inner join
SQL語句:select * fromstudent inner join course on student.ID=course.ID
innerjoin 是比較運算子,只返回符合條件的行。
此時相當於:select * from student,course where student.ID=course.ID
3. 交叉連線 cross join
1.概念:沒有 WHERE子句的交叉聯接將產生連線所涉及的表的笛卡爾積。第一個表的行數乘以第二個表的行數等於笛卡爾積結果集的大小。
SQL語句:select * from student cross join course where student.ID=course.ID