參考網址: 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