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

MySQL中的join以及on條件的用法解析

 更新時(shí)間:2022年11月16日 10:28:51   作者:還沒想好116  
這篇文章主要介紹了MySQL中的join以及on條件的用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MySQL中 join的用法:join具有 連接的作用,即當(dāng)兩個(gè)或者兩個(gè)以上的表有關(guān)系時(shí),需要用join來連接這些相關(guān)的表,來處理或分析數(shù)據(jù):

join的用法:連接

舉例先看看,就懂了:

例如: 有一個(gè)表叫做stu,一個(gè)表叫class,stu join class會生成一個(gè)新的表,

我們執(zhí)行: stu join class 后,新的表成為:

通過上面的例子總結(jié)一下:

  • join后的列名是兩個(gè)表列名加起來的,可能會產(chǎn)生相同的列名,如id 和 name
  • 先用表stu中的一行數(shù)據(jù)和表class中的每一行數(shù)據(jù)不斷的拼接,產(chǎn)生新的行
  • 再用表stu的第二行去和表class中的每一行數(shù)據(jù)拼接,以此類推
  • 表stu是3行,表class是2行,所以按照上面的規(guī)律會產(chǎn)成3*2 = 6行的新的表

on的用法:添加約束

一般我們join后的表,并不是我們想要的,這時(shí),可以用 ON 來加一些條件:

例如:stu join class on classid = class.id ,on后面就是我們加的條件,我們想要classid這一列數(shù)據(jù)和id這一列的數(shù)據(jù)相等的數(shù)據(jù),這里注意一下,join后的表列名是有重復(fù)的,所以O(shè)N后面的條件語句中我們要加上原來的表名。例如這里:classid = class.id,由于id有兩列,這里我們是要表class中的id,所是是class.id。

所以: 執(zhí)行:stu join class on classid = class.id 后,表變?yōu)椋?/p>

小提示:當(dāng)只有join時(shí),其后面的on可以用where替換;

在數(shù)據(jù)庫中驗(yàn)證

mysql -u root -p                                 # 登錄數(shù)據(jù)庫,輸入密碼
CREATE DATABASE new;             # 創(chuàng)建數(shù)據(jù)庫new
use new;                                            # 使用這個(gè)數(shù)據(jù)庫
CREATE TABLE stu(id int primary key,name char(10),classid int)default charset = utf8mb4;             # 創(chuàng)建表stu
INSERT INTO stu (id,name,classid)VALUES(1,'A',1),(2,'B',1),(3,"C",2);                        # 插入數(shù)據(jù)
SELET * FROM stu;

CREATE TABLE class(id int primary key,name char(10),teacher char(10))default charset = utf8mb4;          # 創(chuàng)建表class
INSERT INTO class (id,name,teacher)VALUES(1,'實(shí)驗(yàn)班',"小紅"),(2,'普通班',"小藍(lán)");                      #  插入數(shù)據(jù)
SELECT * FROM class;

SELECT * FROM stu join class;                  #   用join連接兩個(gè)表

SELECT * FROM stu join class ON classid = class.id;               # 用on來添加條件

MySQL中連接表時(shí)join和on的區(qū)別

數(shù)據(jù)庫在通過連接兩張或多張表來返回記錄時(shí),都會生成一張中間的臨時(shí)表,然后再將這張臨時(shí)表返回給用戶。 在使用left jion時(shí),on和where條件的區(qū)別如下:

1、on條件是在生成臨時(shí)表時(shí)使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。

2、where條件是在臨時(shí)表生成好后,再對臨時(shí)表進(jìn)行過濾的條件。這時(shí)已經(jīng)沒有l(wèi)eft join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。 

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL 關(guān)閉子表的外鍵約束檢察方法

    MySQL 關(guān)閉子表的外鍵約束檢察方法

    下面小編就為大家?guī)硪黄狹ySQL 關(guān)閉子表的外鍵約束檢察方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • mysql 啟動1067錯(cuò)誤及修改字符集重啟之后復(fù)原無效問題

    mysql 啟動1067錯(cuò)誤及修改字符集重啟之后復(fù)原無效問題

    這篇文章主要介紹了mysql 啟動1067錯(cuò)誤及修改字符集重啟之后復(fù)原無效問題,需要的朋友可以參考下
    2017-10-10
  • MySQL如何從不固定位置提取字符串元素詳解

    MySQL如何從不固定位置提取字符串元素詳解

    這篇文章主要給大家介紹了關(guān)于MySQL如何從不固定位置提取字符串元素的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • mysql鎖表確認(rèn)及解除鎖表的實(shí)現(xiàn)示例

    mysql鎖表確認(rèn)及解除鎖表的實(shí)現(xiàn)示例

    使用MySQL數(shù)據(jù)庫時(shí),我們可能會遇到數(shù)據(jù)庫表被鎖定的情況,本文主要介紹了mysql鎖表確認(rèn)及解除鎖表的實(shí)現(xiàn)示例, 具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • 設(shè)置mysql5.7編碼集為utf8mb4的方法

    設(shè)置mysql5.7編碼集為utf8mb4的方法

    移動端的表情或者一些emoji是4字節(jié)的,但是utf-8是3字節(jié)的,這篇文章主要介紹了設(shè)置mysql5.7編碼集為utf8mb4的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • MySQL如何實(shí)現(xiàn)兩張表取差集

    MySQL如何實(shí)現(xiàn)兩張表取差集

    這篇文章主要介紹了MySQL如何實(shí)現(xiàn)兩張表取差集問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 新手把mysql裝進(jìn)docker中碰到的各種問題

    新手把mysql裝進(jìn)docker中碰到的各種問題

    這篇文章主要給大家介紹了新手第一次把mysql裝進(jìn)docker中可能碰到的各種問題,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • MySQL中any、some和all的用法實(shí)例

    MySQL中any、some和all的用法實(shí)例

    最近一直在練習(xí)MYSQL的多表查詢,基本上每個(gè)查詢語句我都會寫至少兩次,下面這篇文章主要給大家介紹了關(guān)于MySQL中any、some和all用法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • mysql執(zhí)行語句后只有錯(cuò)誤代碼,沒有錯(cuò)誤信息的問題

    mysql執(zhí)行語句后只有錯(cuò)誤代碼,沒有錯(cuò)誤信息的問題

    這篇文章主要介紹了mysql執(zhí)行語句后只有錯(cuò)誤代碼,沒有錯(cuò)誤信息的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • MySQL 數(shù)據(jù)庫優(yōu)化的具體方法說明

    MySQL 數(shù)據(jù)庫優(yōu)化的具體方法說明

    以下的文章主要講述的是實(shí)現(xiàn)MySQL數(shù)據(jù)庫簡單實(shí)用優(yōu)化的具體方法,以及在實(shí)際操作中有哪些具體操作步驟是值得我們大家注意的。
    2010-05-05

最新評論