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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产日韩精品一区二区在线观看 | 久久青青草原精品国产软件 | 久久这里只精品热在线18 | 色帽子影院 | 2023最新伦理片 | 亚洲精品色婷婷在线影院麻豆 | 日本-区二区三区免费精品 日本破处 | www射com| 狠狠五月天中文字幕 | 色综合久久天天综合 | av中文字幕网免费观看 | 亚洲天堂v | 调教校花浣肠开菊 | 亚洲AV国产精品无码精 | 国产欧美视频高清va在线观看 | 久久永久影院免费 | 欧美成人aaaa免费高清 | 欧美综合一区二区三区 | 91无套极品外围在线播放 | 色综合久久九月婷婷色综合 | 亚洲日韩精品欧美一区二区 | 国产成人福利美女观看视频 | 91亚洲一区二区在线观看不卡 | 日本一卡二卡3卡四卡无卡网址 | 网站视频免费 | jazz欧美人免费xxxxxx | 华人亚洲欧美精品国产 | 国产毛片在线观看 | 九九热综合 | 男人的j进入女人的j免费 | 欧美yw193.c㎝在线观看 | 久久婷婷五月综合色丁香 | 草草精品视频 | 亚洲精品国偷拍自产在线观看蜜臀 | 免费欧美一级片 | 91美女在线视频 | 精品高潮呻吟99AV无码 | 无人在线视频高清免费播放 | 日韩毛片免费在线观看 | 精品免费国产一区二区三区 | 国产小视频在线免费观看 |