MySQL 内连接、左连接、右连接

用户表及部门表结构如下所示:

用户表
mysql> select * from user;
+------+----------+-----------+
| id   | name     | depart_id |
+------+----------+-----------+
|    1 | zhangsan |         1 |
|    2 | lisi     |         1 |
|    3 | wangwu   |         2 |
|    4 | yeqi     |         2 |
|    5 | zhaoxiu  |      NULL |
+------+----------+-----------+

mysql> select * from department;
+------+-----------+
| id   | dname     |
+------+-----------+
|    1 | IT        |
|    2 | sale      |
|    3 | secretary |
+------+-----------+

INNER JOIN(内连接)

不满足 ON 条件的会直接过滤掉,不显示。

mysql> select * from user inner join department on user.depart_id = department.id;
+------+----------+-----------+------+-------+
| id   | name     | depart_id | id   | dname |
+------+----------+-----------+------+-------+
|    1 | zhangsan |         1 |    1 | IT    |
|    2 | lisi     |         1 |    1 | IT    |
|    3 | wangwu   |         2 |    2 | sale  |
|    4 | yeqi     |         2 |    2 | sale  |
+------+----------+-----------+------+-------+

LEFT JOIN(左连接)

不满足 ON 条件的会保留左边那张表的数据,右边表数据直接显示 NULL。

mysql> select * from user left join department on user.depart_id = department.id;
+------+----------+-----------+------+-------+
| id   | name     | depart_id | id   | dname |
+------+----------+-----------+------+-------+
|    1 | zhangsan |         1 |    1 | IT    |
|    2 | lisi     |         1 |    1 | IT    |
|    3 | wangwu   |         2 |    2 | sale  |
|    4 | yeqi     |         2 |    2 | sale  |
|    5 | zhaoxiu  |      NULL | NULL | NULL  |
+------+----------+-----------+------+-------+

RIGHT JOIN(右连接)

不满足 ON 条件的会保留右边那张表的数据,左边表数据直接显示 NULL。

mysql> select * from user right join department on user.depart_id = department.id;
+------+----------+-----------+------+-----------+
| id   | name     | depart_id | id   | dname     |
+------+----------+-----------+------+-----------+
|    1 | zhangsan |         1 |    1 | IT        |
|    2 | lisi     |         1 |    1 | IT        |
|    3 | wangwu   |         2 |    2 | sale      |
|    4 | yeqi     |         2 |    2 | sale      |
| NULL | NULL     |      NULL |    3 | secretary |
+------+----------+-----------+------+-----------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值