一文帶你了解MySQL的左連接與右連接
在MySQL中,左查詢(Left Join)是一種用于連接兩個或多個表格的查詢操作。左查詢返回左表格中的所有行,并包括與右表格中匹配的行。
左查詢是指將左邊的表作為主要表,連接右邊的表,并返回所有匹配的行。以下是左查詢的語法:
SELECT 列名FROM 表1LEFT JOIN 表2 ON 表1.列 = 表2.列;表1 和 表2 是要連接的兩個表,其中 表1 是主要表。列名 是你想要獲取的列,可以是從 表1 或者 表2 中的列,也可以是其他計算字段。ON 后面的條件用于指定連接的條件,它們應該是兩個表中相關列之間的相等比較。右查詢(RIGHT JOIN)右查詢是指將右邊的表作為主要表,連接左邊的表,并返回所有匹配的行。以下是右查詢的語法:
SELECT 列名FROM 表1RIGHT JOIN 表2 ON 表1.列 = 表2.列;表2 是主要表,而 表1 是次要表。其他語法元素與左查詢非常相似。
除此之外,MySQL中還提供了INNER JOIN和OUTER JOIN等不同類型的連接,它們也可以用于實現類似的功能。但是在我們實際使用中,LEFT JOIN和RIGHT JOIN是最常見的連接方式,能夠滿足一般的查詢需求。
如果通過以上的簡單敘述還不是很清楚,那么我們以一個案例來詳細說明:
案例說明下面我們通過一個案例,以學生表格和班級表格為例,演示如何使用左查詢和右查詢將學生表格和班級表格連接在一起:
學生表格,學生表格里面有學生id,姓名和班級id:
CREATE TABLE students ( student_id INT, student_name VARCHAR(50), class_id INT );向學生表格中添加三條數據:
INSERT INTO students (student_id, student_name, class_id)VALUES (1, '張三', 101), (2, '李四', 102), (3, '王五', 101);然后創建班級表格:
CREATE TABLE classes ( class_id INT, class_name VARCHAR(50));向班級表格中添加兩條數據:
INSERT INTO classes (class_id, class_name)VALUES (101, '理科班'), (103, '文科班');接著使用左查詢進行連接:
SELECT students.student_id, students.student_name, classes.class_nameFROM studentsLEFT JOIN classesON students.class_id = classes.class_id;查詢結果:
student_id | student_name | class_name
1 | 張三 | 理科班 2 | 李四 | NULL 3 | 王五 | 理科班
如上圖所示,它是我們使用左查詢連接了學生表格和班級表格。結果中包括了學生表格中的所有行,同時將與班級表格中匹配的班級信息添加到結果集中。如果沒有匹配的班級記錄,則顯示為NULL。
此外,左查詢也可以使用LEFT OUTER JOIN進行表示,兩者是等效的,只是關鍵字不同而已。
MySQL中的左查詢允許我們返回左表格中的所有行,并且包括與右表格中匹配的行。這對于需要顯示左表格的全部數據時非常有用。
同理,當我們使用右查詢的代碼實行時,會出現不一樣的情況:
使用右查詢進行連接:
SELECT students.student_id, students.student_name, classes.class_nameFROM studentsRIGHT JOIN classesON students.class_id = classes.class_id;查詢結果:
student_id | student_name | class_name
1 | 張三 | 理科班 3 | 王五 | 理科班 NULL | NULL | 文科班
上述結果中,我們使用了右查詢連接了學生表格和班級表格。結果中包括了班級表格中的所有行,同時將與學生表格中匹配的學生信息添加到結果集中。如果沒有匹配的學生記錄,則顯示為NULL。
同時,右查詢也可以使用RIGHT OUTER JOIN進行表示,兩者是等效的,只是關鍵字不同而已。
總結來說,MySQL中的右查詢允許我們返回右表格中的所有行,并且包括與左表格中匹配的行。這對于需要顯示右表格的全部數據時非常有用。
到此這篇關于一文帶你了解MySQL的左連接與右連接的文章就介紹到這了,更多相關MySQL 左連接與右連接內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!