mysql 连接查询

2019-05-28  本文已影响0人  愤愤的有痣青年

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

在开始演示前,先查看一下当前数据库的情况,数据库中有A B两个表,其中A表中有b_id字段同B表中的id字段对应

# A表
+----+------+----------+
| id | b_id | lastName |
+----+------+----------+
|  1 |    1 | 赵       |
|  2 |    2 | 钱       |
|  3 |    3 | 孙       |
|  4 |   10 | 李       |
+----+------+----------+

# B表
+----+------+
| id | name |
+----+------+
|  1 | 明   |
|  2 | 刚   |
|  3 | 红   |
|  4 | 花   |
|  5 | 雷   |
+----+------+

内联接查询

内连接即直接在from中导入两个表,然后再在where条件中设置连接条件,若没有链接条件则为两个表的所有组合形式.

# select A.lastName, B.name from A,B;  等价于:select A.lastName, B.name from A inner join B ;
+----------+------+
| lastName | name |
+----------+------+
| 赵       | 明   |
| 钱       | 明   |
| 孙       | 明   |
| 李       | 明   |
| 赵       | 刚   |
| 钱       | 刚   |
| 孙       | 刚   |
| 李       | 刚   |
| 赵       | 红   |
| 钱       | 红   |
| 孙       | 红   |
| 李       | 红   |
| 赵       | 花   |
| 钱       | 花   |
| 孙       | 花   |
| 李       | 花   |
| 赵       | 雷   |
| 钱       | 雷   |
| 孙       | 雷   |
| 李       | 雷   |
+----------+------+

# select A.lastName, B.name from A,B where A.b_id=B.id; 等价于select A.lastName, B.name from A inner join B on A.b_id=B.id;
+----------+------+
| lastName | name |
+----------+------+
| 赵       | 明   |
| 钱       | 刚   |
| 孙       | 红   |
+----------+------+

外连接

# select A.lastName, B.name from A left join B on A.b_id=B.id;
+----------+------+
| lastName | name |
+----------+------+
| 赵       | 明   |
| 钱       | 刚   |
| 孙       | 红   |
| 李       | NULL |
+----------+------+

# select A.lastName, B.name from A right join B on A.b_id=B.id;
+----------+------+
| lastName | name |
+----------+------+
| 赵       | 明   |
| 钱       | 刚   |
| 孙       | 红   |
| NULL     | 花   |
| NULL     | 雷   |
+----------+------+
上一篇 下一篇

猜你喜欢

热点阅读