1.准备

CREATE DATABASE mahaiwuji;USE mahaiwuji;CREATE TABLE grade(      id INT(4) PRIMARY KEY,      name VARCHAR(36)) ENGINE = INNODB DEFAULT CHARSET = utf8;INSERT INTO grade VALUES (1,'一班');INSERT INTO grade VALUES (2,'二班');INSERT INTO grade VALUES (3,'三班');INSERT INTO grade VALUES (4,'四班');CREATE TABLE student(     id INT(4) PRIMARY KEY,      name VARCHAR(36),      gid INT(4)) ENGINE = INNODB DEFAULT CHARSET = utf8;INSERT INTO student VALUES (1,'a1',1);INSERT INTO student VALUES (2,'a2',1);INSERT INTO student VALUES (3,'a3',2);INSERT INTO student VALUES (4,'a4',2);INSERT INTO student VALUES (5,'a5',3);INSERT INTO student VALUES (6,'a6',3);INSERT INTO student VALUES (7,'a7',3);INSERT INTO student VALUES (8,'a8',3);INSERT INTO student VALUES (9,'a9',5);

2.左外连接

左外连接是外连接查询中的一种,也可以将其称为左连接。

它用于返回连接关键字(LEFT JOIN)左表中所有的记录,以及右表中符合连接条件的记录。

当左表的某行记录在右表中没有匹配的记录时,右表中相关的记录将设为空值。

语法

SELECT 查询字段 FROM 表1 LEFT [OUTER] JOIN 表2 ON 匹配条件;

关键字“LEFT [OUTER] JOIN”左边的表(表1)被称为左表,也可称为主表

关键字右边的表(表2)被称为右表,也可称为从表

OUTER在查询时可以省略。

SELECT * FROM grade LEFT JOIN student ON grade.id=student.gid;

3.右外连接

右外连接也是外连接查询中的一种,可以将其称为右连接。

它用于返回连接关键字(RIGHT JOIN)右表(主表)中所有的记录,以及左表(从表)中符合连接条件的记录。

当右表的某行记录在左表中没有匹配的记录时,左表中相关的记录将设为空值。

语法

SELECT 查询字段  FROM 表1 RIGHT [OUTER] JOIN 表2 ON 匹配条件;
SELECT * FROM grade RIGHT JOIN student ON grade.id=student.gid;

4.总结

  1. 外连接是最常用的一种查询数据的方式,分为左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)。
  2. 外连接与内连接的区别是,内连接只能获取符合连接条件的记录,而外连接不仅可以获取符合连接条件的记录,还可以保留主表与从表不能匹配的记录。
  3. 右连接查询正好与左连接相反。因此,在应用外连接时仅调整关键字(LEFT JOIN或RIGHT JOIN)和主从表的位置,即可实现左连接和右连接的互换使用。

full join 和full outer join_28.MySQL中的左(右)外连接 LEFT(RIGHT) [OUTER] JOIN相关推荐

  1. mysql join 组合索引,图文详解MySQL中两表关联的连接表如何创建索引

    本文介绍了MySQL中两表关联的连接表是如何创建索引的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 问题介绍 创建数据库的索引,可以选择单列索引,也可以选择创建组合索引. 遇到如下这种情况 ...

  2. Mysql中主键和外键和索引

    Mysql中主键和外键和索引 1.主键和外键是什么 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是 ...

  3. mysql中为表增加外键_如何在Excel 2013中为符号分配键盘快捷键

    mysql中为表增加外键 We've previously shown you how to add keyboard shortcuts to symbols in Word 2013 to mak ...

  4. mysql 三个表的外连接方式,MySQL表连接使用详解,内连接,外连接,交叉连接

    本章节向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据. 前提如下供后面学习所用: 查看学生表的全部记录SELECT * FROM STUDENT; 查看地址表的全部记录:SEL ...

  5. 数据库学习之MySQL (十六)—— SQL99 外连接 左外连接 右外连接 全外连接 交叉连接

    文章目录 外连接 之 左外连接 与 右外连接 为啥要用外连接 全外连接 总结 内连接 外连接 交叉连接 外连接 之 左外连接 与 右外连接 我们先来看个之前的 女神男朋友的案例 传送:数据库学习之My ...

  6. mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程

    到目前,我们已经学习了从一个表中获取数据.这是简单的需要,但在大多数现实MySQL的使用,经常需要将数据从多个表中的一个单一的查询. 可以使用多个表中的单一SQL查询.在MySQL中联接(join)行 ...

  7. mysql 中的左连接,右链接和内连接

    左连接,右链接和内连接 在自己做项目的过程中,遇到了相关的数据库的查询的问题,在这里做一下简短的记录和总结 其中左连接和右链接属于外连接: 左连接: left (outer) join 右链接: ri ...

  8. mysql 连接 分组_详解MySQL中的分组查询与连接查询语句

    分组查询 group by group by 属性名 [having 条件表达式][ with rollup] "属性名 "指按照该字段值进行分组:"having 条件表 ...

  9. mysql 连接查询分组_详解MySQL中的分组查询与连接查询语句

    分组查询 group bygroup by 属性名 [having 条件表达式][ with rollup] "属性名 "指按照该字段值进行分组:"having 条件表达 ...

最新文章

  1. qq浏览器主页_QQ浏览器遭恶意病毒篡改主页,无法更改的解决办法
  2. JVM年轻代,老年代,永久代详解
  3. [BZOJ5249][九省联考2018]IIIDX(线段树)
  4. 判断是否是数组的方法
  5. 使用FlexDeploy对融合中间件应用程序进行自动化软件测试
  6. 怎么调整字段长短_【芝士蛋糕怎么总烤不熟呢?】
  7. Linux CentOS 查看服务器信息命令及其它常用命令
  8. java 根据类名示例化类_Java即时类| getEpochSecond()方法与示例
  9. HDU 5517---Triple(二维树状数组)
  10. MP-Ukagaka伪春菜插件扩展:在对话框用iframe显示链接
  11. 8.SOA架构:服务和微服务分析及设计--- Web服务及REST服务的服务API与契约版本控制
  12. PCB设计常见的有那些问题
  13. 麦克斯韦方程组(彩图完美解释版)
  14. CCAI 2019 | 俞扬:人工智能的决定权依然在人
  15. ecshop分销说明
  16. esp8266 deauther
  17. 用 python 调用和风天气的 api 爬取天气预报数据
  18. esxi - 加装vmware titan xp显卡配置
  19. 鸿蒙之初彩蛋攻略,鸿蒙圣女 热血精灵派鸿蒙灵帝解析
  20. iOS大型项目开发漫谈

热门文章

  1. python安装sql模块_在Python安装MySQL支持模块的方法
  2. java hashset char_java集合之HashSet
  3. 【TensorFlow-windows】(七) CNN之VGG-net的测试
  4. 数值积分(辛普森求积、柯特斯求积、龙贝格求积)
  5. Java实验7 四、Java异常类(2)创建自己的日期错误异常类
  6. Excel Cookbook by Eric
  7. [Hash应用问题] 例3.2 给出n个整数,按从大到小的顺序输出前m大的数
  8. Python3.x中数据随机重排基本方法
  9. LeetCode 14. 最长公共前缀 (单指针水平扫描)
  10. 【阅读】《点石成金:访客至上的网页设计秘籍》读书笔记