Mysql多表查询
转自多表联合查询


-
内连接
表间主键和外键相连,取得键值相同的记录.
从双方的表中取得键值相同的记录- 显式内连接
select * from student s inner join college c on s.collegeId = c.collegeId - 隐式内连接
select * from student s, college c where s.collegeId = c.collegeId
查询结果:
+——+————-+
| name | collegeName |
+——+————-+
| 张三 | 清华 |
| 李四 | 北大 |
| 王五 | 浙大 |
+——+————-+
从双方的表中取得键值相同的记录 - 显式内连接
-
外连接
- 左外链接
在左表的数据中,加入键值相同的右表数据的字段。
select * from student s left join college c on s.collegeId = c.collegeId
查询结果:| name | collegeName |
+——+————-+
| 张三 | 清华 |
| 李四 | 北大 |
| 王五 | 浙大 |
| 赵六 | NULL |
| 钱七 | NULL |
+——+————-+
包含了全部左表数据+符合条件的右表数据
- 右外链接
在右表的数据中,加入键值相同的左表数据的字段。
select * from student s right join college c on s.collegeId = c.collegeId
查询结果:
- 左外链接
| name | collegeName |
+——+————-+
| 张三 | 清华 |
| 李四 | 北大 |
| 王五 | 浙大 |
| NULL | 厦大 |
+——+————-+
网友评论