<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MySQL 七種 JOIN 寫(xiě)法,這次終于搞懂了!

          共 3423字,需瀏覽 7分鐘

           ·

          2021-08-30 05:55

          點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

          優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

          JOIN的使用

          JOIN 理論

          MySQL 七種 JOIN 的 SQL 編寫(xiě)

          環(huán)境搭建

          # 創(chuàng)建部門(mén)表
          CREATE TABLE tbl_dept (
            id INT NOT NULL AUTO_INCREMENT,
            deptName VARCHAR (30) DEFAULT NULL,
            locAdd VARCHAR (40) DEFAULT NULL,
            PRIMARY KEY (id)
          ) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT chharset = utf8 ;

          # 創(chuàng)建員工表
          CREATE TABLE tbl_emp (
            id INT NOT NULL AUTO_INCREMENT,
            `name` VARCHAR (20) DEFAULT NULL,
            deptId INT (11) DEFAULT NULL,
            PRIMARY KEY (id),
            KEY fk_dept_id (deptId) CONSTRAINT fk_dept_id FORREIGN KEY (deptId) REFERENCES tbl_dept (id)
          ) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = uttf8 ;

          # 插入部門(mén)信息
          INSERT INTO tbl_dept(deptName,locAdd) VALUES('RD',11),('HR',12),('MK',13),('MIS',14),('FD',15);

          # 插入員工信息
          INSERT INTO tbl_emp(`name`,deptId) VALUES('z3',1),('z4',1),('z5',1),('w5',2),('w6',2),('s7',3),('s8',4),('s9',51);

          1.內(nèi)連接(INNER JOIN)

          語(yǔ)句
          SELECT * FROM tbl_dept a INNER JOIN tbl_emp b ON a.id = b.deptId;
          有圖有真相

          理解
          • 可以理解為兩個(gè)集合的交集

          2.左(外)連接(LEFT JOIN)

          語(yǔ)句
          SELECT * FROM tbl_dept a LEFT JOIN tbl_emp b ON a.id = b.deptId;
          有圖有真相

          理解
          • LEFT JOIN 返回左表的全部行和右表滿(mǎn)足 ON 條件的行,如果左表的行在右表中沒(méi)有匹配,那么這一行右表中對(duì)應(yīng)數(shù)據(jù)用 NULL 代替

          3.右(外)連接(RIGHT JOIN)

          語(yǔ)句
          SELECT * FROM tbl_dept a RIGHT JOIN tbl_emp b ON a.id = b.deptId;
          有圖有真相

          理解
          • RIGHT JOIN 返回右表的全部行和左表滿(mǎn)足 ON 條件的行,如果右表的行在左表中沒(méi)有匹配,那么這一行左表中對(duì)應(yīng)數(shù)據(jù)用 NULL 代替。

          4.左表獨(dú)有

          語(yǔ)句
          SELECT * FROM tbl_dept a LEFT JOIN tbl_emp b ON a.id = b.deptId WHERE b.deptId IS NULL;
          有圖有真相

          理解
          • 查詢(xún)左表獨(dú)有的數(shù)據(jù) (注意:左表獨(dú)有,右表 key 為空)

          5.右表獨(dú)有

          語(yǔ)句
          SELECT * FROM tbl_dept a RIGHT JOIN tbl_emp b ON a.id = b.deptId WHERE a.id IS NULL;
          有圖有真相

          理解
          • 查詢(xún)右表獨(dú)有的數(shù)據(jù) (注意:右表獨(dú)有,左表 key 為空)

          6.全連接

          語(yǔ)句
          SELECT * FROM tbl_dept a LEFT JOIN tbl_emp b ON a.id = b.deptId 
          UNION
          SELECT * FROM tbl_dept a RIGHT JOIN tbl_emp b ON a.id = b.deptId;
          有圖有真相

          理解
          • 在 mysql 中不支持 FULL JOIN 進(jìn)行全連接,可以用 一個(gè)左連接 UNION 一個(gè)右連接

          7.左右表獨(dú)有

          語(yǔ)句
          SELECT * FROM tbl_dept a LEFT JOIN tbl_emp b ON a.id=b.deptId WHERE b.deptId IS NULL
          UNION
          SELECT * FROM tbl_dept a RIGHT JOIN tbl_emp b ON a.id=b.deptId WHERE a.id IS NULL;
          有圖有真相

          理解
          • 左右表獨(dú)有 = 左表獨(dú)有 + 右表獨(dú)有


            作者 |  這行代碼沒(méi)Bug

          來(lái)源 |  cnblogs.com/likeyou99315/p/15172229.html


          加鋒哥微信: java3459  
          圍觀鋒哥朋友圈,每天推送Java干貨!

          瀏覽 94
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本黄色视屏网站 | 国产在线网站 | 学生妹一区二区 | 欧美mv日韩mv国产mv网址 | 欧美操逼视频。 |