一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL七大JOIN的具體使用

MySQL七大JOIN的具體使用

2022-02-28 23:22NeverOW Mysql

本文主要介紹了MySQL七大JOIN的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

 

簡介

MySQL七大JOIN的具體使用

  • A的獨有+AB的公有
  • B的獨有+AB的公有
  • AB的公有
  • A的獨有
  • B的獨有
  • A的獨有+B的獨有+AB的公有
  • A的獨有+B的獨有

 

練習

建表

部門表

DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
	`dept_id` int(11) NOT NULL AUTO_INCREMENT,
    `dept_name` varchar(30) DEFAULT NULL,
    `dept_number` int(11) DEFAULT NULL,
    PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

INSERT INTO `dept` VALUES ("1", "AA", "100");
INSERT INTO `dept` VALUES ("2", "BB", "200");
INSERT INTO `dept` VALUES ("3", "CC", "300");
INSERT INTO `dept` VALUES ("4", "DD", "400");
INSERT INTO `dept` VALUES ("5", "HH", "500");

員工表

DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (
    `emp_id` int(11) NOT NULL AUTO_INCREMENT,
    `emp_name` varchar(30) DEFAULT NULL,
    `emp_age` int(11) DEFAULT NULL,
    `dept_id` int(11) NOT NULL,
    PRIMARY KEY (`emp_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

INSERT INTO `emp` VALUES("1", "zhangsan", "20", "1");
INSERT INTO `emp` VALUES("2", "lisi", "25", "6");
INSERT INTO `emp` VALUES("3", "wangwu", "19", "4");
INSERT INTO `emp` VALUES("4", "zhaoliu", "29", "5");
INSERT INTO `emp` VALUES("5", "xiaohong", "30", "2");
INSERT INTO `emp` VALUES("6", "xiaohu", "26", "3");
INSERT INTO `emp` VALUES("7", "zhangle", "23", "3");
INSERT INTO `emp` VALUES("8", "qingtian", "38", "3");
INSERT INTO `emp` VALUES("9", "xiayutian", "36", "2");
INSERT INTO `emp` VALUES("10", "fangjia", "40", "1");
情景分析

1.左連接(left join)

A的獨有+AB的公有

SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id;

MySQL七大JOIN的具體使用

2.右連接(right join)

B的獨有+AB的公有

SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id;

MySQL七大JOIN的具體使用

3.內連接(inner join)

AB的公有

SELECT * from emp e INNER JOIN dept d ON e.dept_id=d.dept_id;

MySQL七大JOIN的具體使用

4.左外連接(left join且右表=null)

A的獨有

SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id WHERE d.dept_id is null;

MySQL七大JOIN的具體使用

5. 右外連接(right join且左表=null)

B的獨有

SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id WHERE e.dept_id is null;

MySQL七大JOIN的具體使用

6. 全連接(full outer join)

A的獨有+B的獨有+AB的公有

注意:MySQL不支持FULL OUTER JOIN(在ORACLE支持)。

因此使用UNION的方式來實現,可以**合并+去重**

應用場景:

要查詢的結果來自于多個表,且多個表沒有直接的連接關系,但查詢的信息一致時

特點:

1、要求多條查詢語句的查詢列數是一致的

2、要求多條查詢語句的查詢的每一列的類型和順序最好一致

3、union關鍵字**默認去重,如果使用union all 可以包含重復項**

SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id UNION SELECT * FROM emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id;

MySQL七大JOIN的具體使用

7. 全外連接(full outer join且左右表=null)

A的獨有+B的獨有

SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id WHERE d.dept_id is null UNION SELECT * FROM emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id WHERE e.dept_id is null;

MySQL七大JOIN的具體使用

 到此這篇關于MySQL七大JOIN的具體使用的文章就介紹到這了,更多相關MySQL JOIN使用內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文地址:https://blog.csdn.net/qq_50596778/article/details/123145434

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 激情视频激情小说 | 十大免费批日的软件 | 亚洲天堂男人网 | 亚洲AV永久无码精品老司机蜜桃 | 被老外玩爽的中国美女视频 | chinese国产人妖hd | 岛国在线播放v片免费 | 亚洲香蕉视频 | 好吊妞乱淫 | 亚洲a视频在线 | 女明星放荡高h日常生活 | 亚洲网站在线看 | 日本五级床片全都免费播放 | 国产青青草 | 亚洲视频一 | 亚洲精品一区制服丝袜 | 欧美一二 | 99热这里只有精品国产在热久久 | 国产精品伊人 | 四虎影院久久久 | 欧美成人三级伦在线观看 | 午夜亚洲一区二区福利 | 欧美男男gaygaysxxx | china外卖员gay帮口 | 欧美日韩一区二区三区在线观看 | www.四虎在线观看 | 男人的天堂久久精品激情 | 欧美成人午夜片一一在线观看 | 午夜精品网 | 192.168.191 | 免费理伦片高清在线 | 国产a免费观看 | 国产喂奶300部 | 青青青在线观看国产精品 | 日韩免费一级片 | 国产精品免费久久久久影院 | 日韩一区二区三 | 非洲特级特黄aa大片 | 思思99热久久精品在2019线 | 草莓视频在线观看免费 | 人禽l交视频在线播放 视频 |