美文网首页
mysql表内连接和外连接

mysql表内连接和外连接

作者: 温柔倾怀 | 来源:发表于2019-08-08 20:06 被阅读0次

mysql表的内连接

内连接实际上就是利用where子句对多表形成的笛卡尔积进行筛选
前面我们使用的那种语法都属于内连接
select 列名 from 表1 inner join 表2 inner join 表3 ON 条件 ....

mysql的外连接

分两种:左外连接,右外连接

左外连接

  • 如果左侧的表完全显示我们就说是左外连接
    select 列名 表1 left join 表2 on 条件;
mysql> select * from stu;
+------+------+
| id   | name |
+------+------+
|    1 | name |
|    2 | jack |
|    3 | tom  |
|    4 | kity |
+------+------+
4 rows in set (0.00 sec)

mysql> select * from exam;
+------+-------+
| id   | grade |
+------+-------+
|    1 |    55 |
|    2 |    45 |
|    3 |    89 |
+------+-------+
3 rows in set (0.00 sec)
  • 显示所有人的成绩,如果没有成绩,也要显示该人的姓名和id号,成绩显示为空(这种情况使用内连接是无法实现的)
    select * from stu left join exam on stu.id=exam.id;
mysql> select stu.id,name,grade from stu left join exam on stu.id=exam.id;
+------+------+-------+
| id   | name | grade |
+------+------+-------+
|    1 | name |    55 |
|    2 | jack |    45 |
|    3 | tom  |    89 |
|    4 | kity |  NULL |
+------+------+-------+
4 rows in set (0.00 sec)
  • 如果上述要求,如果某位同学没有分数,则置为零
    select stu.id,name,ifnull(grade,0) as grade from stu left join exam on stu.id=exam.id;

右外连接

如果右侧的表完全显示我们就说是右外连接
select 列名 from 表1 right join 表2 ON 条件

显示所有分数,没有对应人的分数对应的name置为无名
mysql> select stu.id,ifnull(name,'wuiming'),grade from stu right join exam on stu.id=exam.id;
+------+------------------------+-------+
| id   | ifnull(name,'wuiming') | grade |
+------+------------------------+-------+
|    1 | name                   |    55 |
|    2 | jack                   |    45 |
|    3 | tom                    |    89 |
| NULL | wuiming                |    99 |
+------+------------------------+-------+
4 rows in set (0.00 sec)

相关文章

  • mysql表内连接和外连接

    mysql表的内连接 内连接实际上就是利用where子句对多表形成的笛卡尔积进行筛选前面我们使用的那种语法都属于内...

  • MySQL 连接查询

    MySQL的连接查询 内连接 外连接 交叉连接 内连接 内连接使用比较运算符进行表之间的某些列数据的比较操作,并列...

  • mysql

    Mysql 内连接、外连接 创建一个学生表 创建一个成绩表 给 两张表插入数据 内连接 左连接select * f...

  • MySQL 内连接、外连接、左连接、右连接、全连接

    图解MySQL 内连接、外连接、左连接、右连接、全连接转载

  • Mysql中的连接

    知识点:交叉连接内连接外连接:左外连接、右外连接 以下实验涉及到两张表,表a和表b如下 交叉连接 对两张表进行笛卡...

  • 深入理解MySQL的外连接、内连接、交叉连接

    深入理解MySQL的外连接、内连接、交叉连接

  • MySQL 多表连接查询详解

    连接:就是将多个表连城一个表输出的过程叫连接(关联)。 连接类型:交叉连接、内连接、外连接(左外连接、右外连接)、...

  • MySQL+关联(下)

    飞谷云 MySQL 第3讲 MySQL+表连接(下) 一、MySQL+表连接(下) 1、内连接(inner joi...

  • mysql 连接查询

    在mysql中有外连接 内连接查询,其中外连接又分为左外连接和右外连接,下面是对这些连接查询进行演示. 在开始演示...

  • 多表查询和事务

    多表查询包括内连接和外连接内连接: 隐式内连接 显示内连接 外连接: 左外连接 右外连接 左外连接: 在内连接的基...

网友评论

      本文标题:mysql表内连接和外连接

      本文链接:https://www.haomeiwen.com/subject/gdufjctx.html