日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 外连接查询

發布時間:2025/3/12 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 外连接查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL 中內連接是在交叉連接的結果集上返回滿足條件的記錄;而外連接先將連接的表分為基表和參考表,再以基表為依據返回滿足和不滿足條件的記錄。

外連接更加注重兩張表之間的關系。按照連接表的順序,可以分為左外連接和右外連接。

左外連接又稱為左連接,在 FROM 子句中使用關鍵字 LEFT OUTER JOIN 或者 LEFT JOIN,用于接收該關鍵字左表(基表)的所有行,并用這些行與該關鍵字右表(參考表)中的行進行匹配,即匹配左表中的每一行及右表中符合條件的行。

在左外連接的結果集中,除了匹配的行之外,還包括左表中有但在右表中不匹配的行,對于這樣的行,從右表中選擇的列的值被設置為 NULL,即左外連接的結果集中的 NULL 值表示右表中沒有找到與左表相符的記錄。

在 tb_students_info 表和 tb_departments 表中查詢所有學生,包括沒有學院的學生,輸入的 SQL 語句和執行結果如下所示。

mysql> SELECT name,dept_name-> FROM tb_students_info s-> LEFT OUTER JOIN tb_departments d-> ON s.dept_id = d.dept_id; +--------+-----------+ | name | dept_name | +--------+-----------+ | Dany | Computer | | Jane | Computer | | Jim | Computer | | Henry | Math | | John | Math | | Green | Chinese | | Thomas | Chinese | | Susan | Economy | | Tom | Economy | | Lily | NULL | +--------+-----------+ 10 rows in set (0.03 sec)

結果顯示了 10 條記錄,name 為 Lily 的學生目前沒有學院,因為對應的 tb_departments 表中并沒有該學生的學院信息,所以該條記錄只取出了 tb_students_info 表中相應的值,而從 tb_departments 表中取出的值為 NULL。

右外連接又稱為右連接,在 FROM 子句中使用 RIGHT OUTER JOIN 或者 RIGHT JOIN。與左外連接相反,右外連接以右表為基表,連接方法和左外連接相同。在右外連接的結果集中,除了匹配的行外,還包括右表中有但在左表中不匹配的行,對于這樣的行,從左表中選擇的值被設置為 NULL。

在 tb_students_info 表和 tb_departments 表中查詢所有學院,包括沒有學生的學院,輸入的 SQL 語句和執行結果如下所示。

mysql> SELECT name,dept_name-> FROM tb_students_info s-> RIGHT OUTER JOIN tb_departments d-> ON s.dept_id = d.dept_id; +--------+-----------+ | name | dept_name | +--------+-----------+ | Dany | Computer | | Green | Chinese | | Henry | Math | | Jane | Computer | | Jim | Computer | | John | Math | | Susan | Economy | | Thomas | Chinese | | Tom | Economy | | NULL | History | +--------+-----------+ 10 rows in set (0.00 sec)

可以看到,結果只顯示了 10 條記錄,名稱為 History 的學院目前沒有學生,對應的 tb_students_info 表中并沒有該學院的信息,所以該條記錄只取出了 tb_departments 表中相應的值,而從 tb_students_info 表中取出的值為 NULL。

總結

以上是生活随笔為你收集整理的MySQL 外连接查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。