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 | 雷 |
+----------+------+