欧美日韩一区二区三区四区不卡,日韩欧美视频一区二区三区四区,久久精品欧美一区二区三区不卡,国产精品久久久乱弄

咨詢電話:186 7916 6165 咨詢電話:186 7916 6165 (微信同號)    在線QQ:181796286
NEWS BLOG ·
學無止境
關注開優網絡 關注前沿
MSSQL在現有表中添加ID主鍵
Sql Server 出現此數據庫沒有有效所有者問題

SQL多表連接查詢

發表日期:2019-01-08    文章編輯:    瀏覽次數:4629    標簽:

表1:student  截圖如下:



表2:course  截圖如下:


(此時這樣建表只是為了演示連接SQL語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。)

一、外連接

外連接可分為:左連接、右連接、完全外連接。

1、左連接  left join 或 left outer join

SQL語句:select * from student left join course on student.ID=course.ID //student.ID=course.ID 這里的兩個值是相同的

執行結果:



左外連接包含left join左表所有行,如果左表中某行在右表沒有匹配,則結果中對應行右表的部分全部為空(NULL).

注:此時我們不能說結果的行數等于左表數據的行數。當然此處查詢結果的行數等于左表數據的行數,因為左右兩表此時為一對一關系。

2、右連接  right join 或 right outer join

SQL語句:select * from student right join course on student.ID=course.ID

執行結果:



右外連接包含right join右表所有行,如果左表中某行在右表沒有匹配,則結果中對應左表的部分全部為空(NULL)。

注:同樣此時我們不能說結果的行數等于右表的行數。當然此處查詢結果的行數等于左表數據的行數,因為左右兩表此時為一對一關系。

3、完全外連接  full join 或 full outer join

SQL語句:select * from student full join course on student.ID=course.ID

執行結果:



完全外連接包含full join左右兩表中所有的行,如果右表中某行在左表中沒有匹配,則結果中對應行右表的部分全部為空(NULL),如果左表中某行在右表中沒有匹配,則結果中對應行左表的部分全部為空(NULL)。

二、內連接  join 或 inner join

SQL語句:select * from student inner join course on student.ID=course.ID

執行結果:



inner join 是比較運算符,只返回符合條件的行。

此時相當于:select * from student,course where student.ID=course.ID

三、交叉連接 cross join

1.概念:沒有 WHERE 子句的交叉聯接將產生連接所涉及的表的笛卡爾積。第一個表的行數乘以第二個表的行數等于笛卡爾積結果集的大小。

SQL語句:select * from student cross join course

執行結果:



如果我們在此時給這條SQL加上WHERE子句的時候比如SQL:select * from student cross join course where student.ID=course.ID

此時將返回符合條件的結果集,結果和inner join所示執行結果一樣。


主站蜘蛛池模板: 吐鲁番市| 碌曲县| 池州市| 温泉县| 锦州市| 信丰县| 都兰县| 金平| 湟中县| 利辛县| 金寨县| 青神县| 霍山县| 嘉善县| 鄂托克前旗| 子长县| 屏南县| 纳雍县| 临安市| 扎囊县| 乡宁县| 旌德县| 蒙自县| 安泽县| 无极县| 五莲县| 宾阳县| 仪陇县| 邮箱| 泽州县| 镇沅| 玛曲县| 横山县| 小金县| 栾城县| 灵川县| 桐庐县| 合水县| 台前县| 博兴县| 乌鲁木齐市|