欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文帶你了解MySQL的左連接與右連接

 更新時(shí)間:2023年07月05日 08:53:30   作者:小威要向諸佬學(xué)習(xí)呀  
在MySQL中,左查詢(xún)和右查詢(xún)是通過(guò)使用LEFT?JOIN和RIGHT?JOIN關(guān)鍵字來(lái)執(zhí)行的,本文通過(guò)詳細(xì)的代碼示例簡(jiǎn)單介紹這兩種查詢(xún)方法的語(yǔ)法,需要的朋友可以參考下

左查詢(xún)(LEFT JOIN)

在MySQL中,左查詢(xún)(Left Join)是一種用于連接兩個(gè)或多個(gè)表格的查詢(xún)操作。左查詢(xún)返回左表格中的所有行,并包括與右表格中匹配的行。

左查詢(xún)是指將左邊的表作為主要表,連接右邊的表,并返回所有匹配的行。以下是左查詢(xún)的語(yǔ)法:

SELECT 列名
FROM 表1
LEFT JOIN 表2 ON 表1.列 = 表2.列;
  • 表1 和 表2 是要連接的兩個(gè)表,其中 表1 是主要表。
  • 列名 是你想要獲取的列,可以是從 表1 或者 表2 中的列,也可以是其他計(jì)算字段。
  • ON 后面的條件用于指定連接的條件,它們應(yīng)該是兩個(gè)表中相關(guān)列之間的相等比較。

右查詢(xún)(RIGHT JOIN)

右查詢(xún)是指將右邊的表作為主要表,連接左邊的表,并返回所有匹配的行。以下是右查詢(xún)的語(yǔ)法:

SELECT 列名
FROM 表1
RIGHT JOIN 表2 ON 表1.列 = 表2.列;

表2 是主要表,而 表1 是次要表。其他語(yǔ)法元素與左查詢(xún)非常相似。

除此之外,MySQL中還提供了INNER JOIN和OUTER JOIN等不同類(lèi)型的連接,它們也可以用于實(shí)現(xiàn)類(lèi)似的功能。但是在我們實(shí)際使用中,LEFT JOIN和RIGHT JOIN是最常見(jiàn)的連接方式,能夠滿足一般的查詢(xún)需求。

如果通過(guò)以上的簡(jiǎn)單敘述還不是很清楚,那么我們以一個(gè)案例來(lái)詳細(xì)說(shuō)明:

案例說(shuō)明

下面我們通過(guò)一個(gè)案例,以學(xué)生表格和班級(jí)表格為例,演示如何使用左查詢(xún)和右查詢(xún)將學(xué)生表格和班級(jí)表格連接在一起:

學(xué)生表格,學(xué)生表格里面有學(xué)生id,姓名和班級(jí)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)建班級(jí)表格:

CREATE TABLE classes (
    class_id INT,
    class_name VARCHAR(50)
);

向班級(jí)表格中添加兩條數(shù)據(jù):

INSERT INTO classes (class_id, class_name)
VALUES (101, '理科班'),
       (103, '文科班');

接著使用左查詢(xún)進(jìn)行連接:

SELECT students.student_id, students.student_name, classes.class_name
FROM students
LEFT JOIN classes
ON students.class_id = classes.class_id;

查詢(xún)結(jié)果:

student_id | student_name | class_name

1 | 張三 | 理科班 2 | 李四 | NULL 3 | 王五 | 理科班

如上圖所示,它是我們使用左查詢(xún)連接了學(xué)生表格和班級(jí)表格。結(jié)果中包括了學(xué)生表格中的所有行,同時(shí)將與班級(jí)表格中匹配的班級(jí)信息添加到結(jié)果集中。如果沒(méi)有匹配的班級(jí)記錄,則顯示為NULL。

此外,左查詢(xún)也可以使用LEFT OUTER JOIN進(jìn)行表示,兩者是等效的,只是關(guān)鍵字不同而已。

MySQL中的左查詢(xún)?cè)试S我們返回左表格中的所有行,并且包括與右表格中匹配的行。這對(duì)于需要顯示左表格的全部數(shù)據(jù)時(shí)非常有用。

同理,當(dāng)我們使用右查詢(xún)的代碼實(shí)行時(shí),會(huì)出現(xiàn)不一樣的情況:

使用右查詢(xú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;

查詢(xún)結(jié)果:

student_id | student_name | class_name

1 | 張三 | 理科班 3 | 王五 | 理科班 NULL | NULL | 文科班

上述結(jié)果中,我們使用了右查詢(xún)連接了學(xué)生表格和班級(jí)表格。結(jié)果中包括了班級(jí)表格中的所有行,同時(shí)將與學(xué)生表格中匹配的學(xué)生信息添加到結(jié)果集中。如果沒(méi)有匹配的學(xué)生記錄,則顯示為NULL。

同時(shí),右查詢(xún)也可以使用RIGHT OUTER JOIN進(jìn)行表示,兩者是等效的,只是關(guān)鍵字不同而已。

總結(jié)來(lái)說(shuō),MySQL中的右查詢(xún)?cè)试S我們返回右表格中的所有行,并且包括與左表格中匹配的行。這對(duì)于需要顯示右表格的全部數(shù)據(jù)時(shí)非常有用。

到此這篇關(guān)于一文帶你了解MySQL的左連接與右連接的文章就介紹到這了,更多相關(guān)MySQL 左連接與右連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL統(tǒng)計(jì)今日生成create_time的數(shù)據(jù)量的方法小結(jié)

    MySQL統(tǒng)計(jì)今日生成create_time的數(shù)據(jù)量的方法小結(jié)

    create_time通常是一個(gè)用于表示某個(gè)實(shí)體或事件創(chuàng)建時(shí)間的字段,在數(shù)據(jù)庫(kù)設(shè)計(jì)、日志記錄或許多軟件系統(tǒng)中常見(jiàn),它存儲(chǔ)的是一個(gè)日期或時(shí)間戳,記錄了數(shù)據(jù)首次被創(chuàng)建的具體時(shí)刻,本文介紹了MySQL統(tǒng)計(jì)今日生成create_time的數(shù)據(jù)量的方法,需要的朋友可以參考下
    2024-08-08
  • show engine innodb status顯示信息不全如何解決

    show engine innodb status顯示信息不全如何解決

    執(zhí)行 show engine innodb status\G 時(shí),顯示的信息不全,DEADLOCK相關(guān)信息太多,后面的都沒(méi)了
    2012-11-11
  • 帶例子詳解Sql中Union和Union?ALL的區(qū)別

    帶例子詳解Sql中Union和Union?ALL的區(qū)別

    這篇文章主要介紹了帶例子詳解Sql中Union和Union?ALL的區(qū)別,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 深入理解Mysql的四種隔離級(jí)別

    深入理解Mysql的四種隔離級(jí)別

    開(kāi)發(fā)工作中我們會(huì)使用到事務(wù),那你們知道事務(wù)又分哪幾種嗎?MYSQL標(biāo)準(zhǔn)定義了4類(lèi)隔離級(jí)別,用來(lái)限定事務(wù)內(nèi)外的哪些改變是可見(jiàn)的,哪些是不可見(jiàn)的。低的隔離級(jí)一般支持更高的并發(fā)處理,并擁有更低的系統(tǒng)開(kāi)銷(xiāo)。下面通過(guò)這篇文章我們來(lái)一起深入理解Mysql中的四種隔離級(jí)別。
    2016-11-11
  • win10下安裝兩個(gè)MySQL5.6.35數(shù)據(jù)庫(kù)

    win10下安裝兩個(gè)MySQL5.6.35數(shù)據(jù)庫(kù)

    這篇文章主要為大家詳細(xì)介紹了win10下兩個(gè)MySQL5.6.35數(shù)據(jù)庫(kù)安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Windows下MySQL服務(wù)無(wú)法停止和刪除的解決辦法

    Windows下MySQL服務(wù)無(wú)法停止和刪除的解決辦法

    我在 Windows 操作系統(tǒng)上,使用解壓壓縮包的方式安裝 MySQL。遇到一點(diǎn)問(wèn)題,下面通過(guò)本文給大家分享Windows下MySQL服務(wù)無(wú)法停止和刪除的解決辦法,需要的朋友可以參考下
    2017-02-02
  • Mysql中 unique列插入重復(fù)值該怎么解決呢

    Mysql中 unique列插入重復(fù)值該怎么解決呢

    本文給大家介紹mysql中unique列插入重復(fù)值的解決方案,主要基于mysql平臺(tái),通過(guò)這些,可以做到一些新的功能和應(yīng)用。特此把本文本文分享給廣大開(kāi)發(fā)人員
    2015-11-11
  • mysql日期處理函數(shù)實(shí)例解析

    mysql日期處理函數(shù)實(shí)例解析

    這篇文章主要介紹了mysql日期處理函數(shù)實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • MySQL中的驅(qū)動(dòng)表與被驅(qū)動(dòng)表及含義

    MySQL中的驅(qū)動(dòng)表與被驅(qū)動(dòng)表及含義

    使用join連接查詢(xún)時(shí)如果有where條件,則MySQL執(zhí)行器會(huì)根據(jù)查詢(xún)條件過(guò)濾后的結(jié)果自動(dòng)選擇驅(qū)動(dòng)表或被驅(qū)動(dòng)表,這篇文章主要介紹了MySQL的驅(qū)動(dòng)表與被驅(qū)動(dòng)表,需要的朋友可以參考下
    2023-10-10
  • sql中with?as用法以及with-as性能調(diào)優(yōu)/with用法舉例

    sql中with?as用法以及with-as性能調(diào)優(yōu)/with用法舉例

    SQL中的WITH?AS語(yǔ)法是一種強(qiáng)大的工具,可以簡(jiǎn)化復(fù)雜查詢(xún)的編寫(xiě),提高查詢(xún)的可讀性和維護(hù)性,這篇文章主要給大家介紹了關(guān)于sql中with?as用法以及with-as性能調(diào)優(yōu)/with用法的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評(píng)論