Mysql多表查询

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 | 厦大 |
+——+————-+

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容