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

MySQL之多表查詢自連接方式

 更新時間:2024年09月05日 09:18:49   作者:歲歲歲平安  
這篇文章主要介紹了MySQL之多表查詢自連接方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、引言

自連接,顧名思義就是自己連接自己。

自連接的語法結(jié)構(gòu):

表 A 別名 A join 表 A 別名 B ON 條件 ...;

注意:

  • 1、這種語法有一個關(guān)鍵字:join
  • 2、自連接查詢可以是內(nèi)連接的語法,可以是外連接的語法(當(dāng)然包括左外連接和右外連接)

接下來去工具 DataGrip 通過兩個需求去演示一下 自連接查詢 的語法。

二、實操

(0)兩張表的結(jié)構(gòu)以及數(shù)據(jù)展示

  • 員工表 emp

  • 部門表 dept

(1)查詢員工及其所屬領(lǐng)導(dǎo)的名字

1、分析

在表 emp 中沒有直接的表示出某某的直屬領(lǐng)導(dǎo)是誰,只有一個所屬領(lǐng)導(dǎo)id號(managerid)

而對于一個企業(yè)的領(lǐng)導(dǎo),它也是企業(yè)的員工。

表結(jié)構(gòu):emp。

單靠單表查詢是不可能完成所要的需求的。所以要對自己進(jìn)行子連接查詢。

把emp看成兩張表:員工表和領(lǐng)導(dǎo)表(仔細(xì)深思一下)

這就是它們之間的編寫思路

2、編寫SQL語句

/*類似于內(nèi)連接,有null 的值時沒有顯示*/
SELECT a.name,b.name FROM emp AS a JOIN emp AS b WHERE a.managerid=b.id;

(2)直詢所有員工emp及其領(lǐng)導(dǎo)的名字emp ,如果員工沒有領(lǐng)導(dǎo),也需要查詢出來。

1、分析

如果這個員工的字段 managerid = null ,也需要把這個員工查詢出來。

這時只能用到外連接

因為內(nèi)連接只能查詢到交集的數(shù)據(jù),外連接才會包含左表或者右表的數(shù)據(jù)

表結(jié)構(gòu):emp a , emp b

2、編寫SQL語句

/*查出直屬領(lǐng)導(dǎo)為 null 也要顯示*/
SELECT a.name AS '員工',b.name AS '領(lǐng)導(dǎo)' FROM emp AS a LEFT OUTER JOIN emp AS b ON a.managerid=b.id;

這樣就通過兩個自連接查詢完成兩個需求。

在自連接查詢的時候,一定注意要給表名起別名。

要不然我們會不清楚條件,以及返回的字段到底是哪一張表當(dāng)中的字段。

總結(jié)

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

相關(guān)文章

  • mysql使用instr達(dá)到in(字符串)的效果

    mysql使用instr達(dá)到in(字符串)的效果

    本文主要介紹了mysql使用instr達(dá)到in(字符串)的效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • MySQL中從庫延遲狀況排查的一則案例

    MySQL中從庫延遲狀況排查的一則案例

    這篇文章主要介紹了MySQL中從庫延遲狀況排查的一則案例,針對其從庫無業(yè)務(wù)狀態(tài)下的CPU大量占用情況,需要的朋友可以參考下
    2015-05-05
  • python 連接數(shù)據(jù)庫mysql解壓版安裝配置及遇到問題

    python 連接數(shù)據(jù)庫mysql解壓版安裝配置及遇到問題

    今天學(xué)習(xí)python連接數(shù)據(jù)庫,就想安裝一下mysql數(shù)據(jù)庫,沒想到小小的數(shù)據(jù)庫也遇到了不少挫折,所以我就把自己的安裝過程以及問題寫出來分享給大家,需要的朋友可以參考下
    2019-06-06
  • Mysql鎖之共享鎖(讀鎖)和排他鎖(寫鎖)詳解

    Mysql鎖之共享鎖(讀鎖)和排他鎖(寫鎖)詳解

    這篇文章主要介紹了Mysql鎖之共享鎖(讀鎖)和排他鎖(寫鎖),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL中int?(10)?和?int?(11)?的區(qū)別

    MySQL中int?(10)?和?int?(11)?的區(qū)別

    這篇文章主要介紹了MySQL中int?(10)?和?int?(11)?的區(qū)別,根據(jù)mysql?中整數(shù)數(shù)據(jù)類型、不同類型的取值范圍、不同數(shù)據(jù)類型的默認(rèn)顯示寬度展開對int的介紹,需要的朋友可以參考一下
    2022-01-01
  • MySQL 5.7并發(fā)復(fù)制隱式bug實例分析

    MySQL 5.7并發(fā)復(fù)制隱式bug實例分析

    這篇文章主要給大家介紹了關(guān)于MySQL 5.7并發(fā)復(fù)制隱式bug的相關(guān)資料,文中介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql5.7具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • MySQL數(shù)據(jù)權(quán)限的實現(xiàn)詳情

    MySQL數(shù)據(jù)權(quán)限的實現(xiàn)詳情

    這篇文章主要介紹了MySQL數(shù)據(jù)權(quán)限的實現(xiàn)詳情,文章通過實際案例,從代碼實戰(zhàn)的角度來實現(xiàn)這樣的一個數(shù)據(jù)權(quán)限。具體詳細(xì)介紹,具有一定的參考價值
    2022-08-08
  • MySQL數(shù)據(jù)庫遷移data文件夾位置詳細(xì)步驟

    MySQL數(shù)據(jù)庫遷移data文件夾位置詳細(xì)步驟

    這篇文章主要介紹了MySQL數(shù)據(jù)庫遷移data文件夾詳細(xì)步驟,需要的朋友可以參考下
    2014-03-03
  • Mysql免安裝版設(shè)置密碼教程詳解

    Mysql免安裝版設(shè)置密碼教程詳解

    這篇文章主要介紹了Mysql免安裝版設(shè)置密碼教程詳解,需要的朋友可以參考下
    2017-05-05
  • MySQL 使用SQL語句修改表名的實現(xiàn)

    MySQL 使用SQL語句修改表名的實現(xiàn)

    這篇文章主要介紹了MySQL 使用SQL語句修改表名的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論