mysql表内连接和外连接

2019-08-08  本文已影响0人  温柔倾怀

mysql表的内连接

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

mysql的外连接

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

左外连接

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)
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 列名 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)
上一篇 下一篇

猜你喜欢

热点阅读