一文帶你了解MySQL的左連接與右連接
左查詢(LEFT JOIN)
在MySQL中,左查詢(Left Join)是一種用于連接兩個或多個表格的查詢操作。左查詢返回左表格中的所有行,并包括與右表格中匹配的行。
左查詢是指將左邊的表作為主要表,連接右邊的表,并返回所有匹配的行。以下是左查詢的語法:
SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列 = 表2.列;
- 表1 和 表2 是要連接的兩個表,其中 表1 是主要表。
- 列名 是你想要獲取的列,可以是從 表1 或者 表2 中的列,也可以是其他計算字段。
- ON 后面的條件用于指定連接的條件,它們應(yīng)該是兩個表中相關(guān)列之間的相等比較。
右查詢(RIGHT JOIN)
右查詢是指將右邊的表作為主要表,連接左邊的表,并返回所有匹配的行。以下是右查詢的語法:
SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列 = 表2.列;
表2 是主要表,而 表1 是次要表。其他語法元素與左查詢非常相似。
除此之外,MySQL中還提供了INNER JOIN和OUTER JOIN等不同類型的連接,它們也可以用于實現(xiàn)類似的功能。但是在我們實際使用中,LEFT JOIN和RIGHT JOIN是最常見的連接方式,能夠滿足一般的查詢需求。
如果通過以上的簡單敘述還不是很清楚,那么我們以一個案例來詳細(xì)說明:
案例說明
下面我們通過一個案例,以學(xué)生表格和班級表格為例,演示如何使用左查詢和右查詢將學(xué)生表格和班級表格連接在一起:
學(xué)生表格,學(xué)生表格里面有學(xué)生id,姓名和班級id:
CREATE TABLE students ( student_id INT, student_name VARCHAR(50), class_id INT );
向?qū)W生表格中添加三條數(shù)據(jù):
INSERT INTO students (student_id, student_name, class_id)
VALUES (1, '張三', 101),
(2, '李四', 102),
(3, '王五', 101);然后創(chuàng)建班級表格:
CREATE TABLE classes (
class_id INT,
class_name VARCHAR(50)
);向班級表格中添加兩條數(shù)據(jù):
INSERT INTO classes (class_id, class_name)
VALUES (101, '理科班'),
(103, '文科班');接著使用左查詢進(jìn)行連接:
SELECT students.student_id, students.student_name, classes.class_name FROM students LEFT JOIN classes ON students.class_id = classes.class_id;
查詢結(jié)果:
student_id | student_name | class_name
1 | 張三 | 理科班 2 | 李四 | NULL 3 | 王五 | 理科班
如上圖所示,它是我們使用左查詢連接了學(xué)生表格和班級表格。結(jié)果中包括了學(xué)生表格中的所有行,同時將與班級表格中匹配的班級信息添加到結(jié)果集中。如果沒有匹配的班級記錄,則顯示為NULL。
此外,左查詢也可以使用LEFT OUTER JOIN進(jìn)行表示,兩者是等效的,只是關(guān)鍵字不同而已。
MySQL中的左查詢允許我們返回左表格中的所有行,并且包括與右表格中匹配的行。這對于需要顯示左表格的全部數(shù)據(jù)時非常有用。
同理,當(dāng)我們使用右查詢的代碼實行時,會出現(xiàn)不一樣的情況:
使用右查詢進(jìn)行連接:
SELECT students.student_id, students.student_name, classes.class_name FROM students RIGHT JOIN classes ON students.class_id = classes.class_id;
查詢結(jié)果:
student_id | student_name | class_name
1 | 張三 | 理科班 3 | 王五 | 理科班 NULL | NULL | 文科班
上述結(jié)果中,我們使用了右查詢連接了學(xué)生表格和班級表格。結(jié)果中包括了班級表格中的所有行,同時將與學(xué)生表格中匹配的學(xué)生信息添加到結(jié)果集中。如果沒有匹配的學(xué)生記錄,則顯示為NULL。
同時,右查詢也可以使用RIGHT OUTER JOIN進(jìn)行表示,兩者是等效的,只是關(guān)鍵字不同而已。
總結(jié)來說,MySQL中的右查詢允許我們返回右表格中的所有行,并且包括與左表格中匹配的行。這對于需要顯示右表格的全部數(shù)據(jù)時非常有用。
到此這篇關(guān)于一文帶你了解MySQL的左連接與右連接的文章就介紹到這了,更多相關(guān)MySQL 左連接與右連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql服務(wù)添加 iptables防火墻策略的方案
這篇文章主要介紹了給Mysql服務(wù)添加 iptables防火墻策略的方案,本文給大家分享兩種解決方案,需要的朋友可以參考下2021-04-04
Mac上實現(xiàn)修改MySQL Workbench主題配色
本文講述了Mac系統(tǒng)中Workbench主題色的調(diào)整方法,從深色主題改為淺色主題只需在命令行中執(zhí)行特定命令,反之亦然2026-04-04

