美文网首页
MySQL 连接查询

MySQL 连接查询

作者: 村东头老骥 | 来源:发表于2019-11-12 14:57 被阅读0次

MySQL的连接查询

  • 内连接
  • 外连接
  • 交叉连接

内连接

内连接使用比较运算符进行表之间的某些列数据的比较操作,并列出这些表中连接相匹配的数据行。根据所使用的比较的方式不同,内连接又分为等值连接,自然连接,和不等值连接三种。
【等值连接】
在连接条件中使用等于号(=)运算符比较被连接列的列值,其中查询结果中列出被连接表中所有的列,包括其中的重复列。

select * from studio inner join class on studio.cl_id = class.cl_id
等值连接.png

【自然连接】
有选择的显示列

select st_id as '编号',st_name as '学生姓名',cl_class as '班级名称' 
from studio inner join class  
    on studio.cl_id = class.cl_id 
order by st_id
-- 有选择的列进行显示
+------+----------+----------+
| 编号 | 学生姓名 | 班级名称 |
+------+----------+----------+
|    2 | 林黛玉   | 百杰二班 |
|    3 | 陆小凤   | 千星一班 |
|    4 | 西门吹水 | 千星二班 |
|    5 | 刘小琴   | 百杰一班 |
|    6 | 黄平     | 百杰二班 |
|    9 | 陈小春   | 百杰一班 |
+------+----------+----------+
6 rows in set (0.00 sec)

【连接多个表进行查询】
对于添加多个表的时候需要注意的是只要使用 inner join 表名 on(匹配条件即可)

SELECT
    st_id AS '编号',
    st_name AS '学生姓名',
    cl_class AS '班级名称',
    ho_coding AS '宿舍编号' 
FROM
    studio
    INNER JOIN class ON studio.cl_id = class.cl_id
    INNER JOIN hostel ON studio.ho_id = hostel.ho_id
多表联查.png

外连接

内连接: 返回结果查询集合中符合查询条件和连接条件的行

外连接: 不仅仅包含符合条件的行,而且还包括左表(左外连接时Left outer join或者Left join)、右表(右外连接Right outer join或者Right join)、和完全连接(Full outer join 或Full join)MySQL中不支持全连接可以使用联合查询左连接右连接实现。

总结: 外连接不只列出与连接条件相匹配的行,而且列出左表,右表,或两个表所有符合的数据行

  1. 左外连接

以左表为主,显示出主表中所有的数据行,如果右边从表中没有之匹配的数据则显示NULL.

select  st.st_id as '学生编号', st.st_name as '学生姓名',
        cl.cl_id as '班级编号',cl.cl_class as '班级名称'
from studio as st left outer join class as cl
    on st.cl_id=cl.cl_id
左外连接.png
  1. 右外连接
    右外连接和左外连接对应,以右边为主表,左边为从表,其他一样
select  st.st_id as '学生编号', st.st_name as '学生姓名',
        cl.cl_id as '班级编号',cl_class as '班级名称'
from studio as st right outer join class as cl
    on st.cl_id=cl.cl_id
右外连接.png

自连接
对于自连接其实笼统的说就是连接关键字的两边都是同一个表

select a.z_zone,b.z_zone 
from zone as a inner join zone as b 
    on a.z_id=b.id 
group by b.z_zone
-- 输出结果
+--------+--------+
| z_zone | z_zone |
+--------+--------+
| 成都   | 四川   |
| 绵阳   | 四川   |
| 北京   | 北京   |
| 南京   | 江苏   |
| 苏州   | 江苏   |
| 常州   | 江苏   |
+--------+--------+
---
+------+--------+
| 地名 | 辖区数 |
+------+--------+
| 北京 |      1 |
| 四川 |      2 |
| 江苏 |      3 |
+------+--------+

相关文章

  • mysql连接查询,自关联,子查询

    mysql支持三种类型的连接查询,分别为:内连接查询,左连接查询,右连接查询 内连接查询: 左连接查询: 右连接查...

  • python下MySQL的使用

    mysql连接 全部查询 单个查询 更新数据

  • 服务之路(一)

    连接mysql 使用koa框架,连接mysql,查询数据并通过接口返回

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

  • mysql默认配置修改

    查询mysql数据库连接最大响应数 查询mysql数据库最大连接数 对于mysql服务器最大连接数值的设置范围比较...

  • 64MySQL-分页查询&表连接&count统计&索引优化总结

    1 Mysql 分页查询sql 执行原理? 2,千万级数据mysql 分页查询如何优化 3,Mysql表连接底层实...

  • mysql无法正常查询

    现象: mysql服务器本地连接查询没有问题 其他服务器连接mysql服务进行查询没有问题 公司内部连接到mysq...

  • 连接查询

    连接查询连接就是把各个表中的记录都取出来进行依次匹配,这个查询过程就是连接查询。mysql> SELECT * F...

  • MySql查询-连接查询

    当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回 mysql支持三种类型的连接查...

  • Python+MySQL数据库操作(PyMySQL)

    安装mysql驱动 连接数据库 建表 插入 查询 Python查询Mysql使用 fetchone() 方法获取单...

网友评论

      本文标题:MySQL 连接查询

      本文链接:https://www.haomeiwen.com/subject/yftqictx.html