前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL多表查询

MySQL多表查询

作者头像
阿年、嗯啊
发布2022-05-10 14:52:26
3.2K0
发布2022-05-10 14:52:26
举报
文章被收录于专栏:阿年的数据梦

MySQL多表查询

交叉连接查询

  1. 语法:selectfrom 表1 cross join 表2; 或  selectfrom 表1,表2;
    • 这样查询到的结果为两个表中所有数据行的乘积即笛卡尔积。
在这里插入图片描述
在这里插入图片描述

内连接查询:

  • 注意:要查询的表,查询的条件,查询的字段。
    1. 隐式内连接:使用where条件消除无用数据
      • select * from emp,dept where emp.dept_id = dept.id; 查询emp表和dept表中dept_id和id相等的数据
      • 常用写法: select t1.name, – 注释 t1.gender, t2.name from emp t1, dept t2 where t1.dept_id = t2.id
    2. 显式内连接:
      • select * from emp inner join dept on emp.dept_id = dept.id; 注:inner 可以省略 <==> select * from emp join dept on emp.dept_id = dept.id;

外连接查询:

  • 分类:
    1. 左外连接:左外连接的结果包括LEFT JOIN子句中指定的左表的所有记录,和所有满足连接条件的记录。 如果左表的某条记录在右表中没有匹配,则在右表中显示为空。(在左表的基础上,符合条件的右表的数据,也就是交集部分)。
      • select 字段列表 from 表1 left join 表2 on 条件;

      eg: select t1.*,t2.name from emp t1 left join dept t2 on t2.dept_id = t2.id;

    2. 右外连接:右外连接与左外连接正好相反,返回右表中所有指定的记录和所有满足连接条件的记录。 如果右表的某条记录在左表中没有匹配,则左表将返回空值。 (在右表的基础上,符合条件的左表的数据,也就是交集部分)。
      • select 字段列表 from 表1 right join 表2 on 条件;

      eg: select t1.*,t2.name from emp t1 right join dept t2 on t2.dept_id = t2.id;

注意:左表和右表是一个相对的概念,写在关键字(left join,right join)左边的那张表就是左表,右表同理。

复合条件连接查询

  • 定义:复合条件连接查询就是在连接查询的过程中,通过添加过滤条件来限制查询结果,使查询结果更加精确。

子查询(嵌套查询)

  • 定义:子查询是指一个查询语句嵌套在另一个查询语句内部的查询。在执行查询语句时,首先会执行子查询中的语句,然后将返回的结果作为外层查询的过滤条件。
  • 子查询中常用的操作符有 ANY(SOME)、ALL、IN EXISTS ,还可以是比较运算符,如“<”、“<=”、“>”、“>=”、“!=”等。
    1. ANY(SOME) :对于子查询返回的列中的任何一个数值,如果比较结果为TRUE,就返回TRUE。
      • 例如 “13 >any(15, 30, 12, 31)”,由于13>12,所以,该该判断会返回TRUE;只要13与集合中的任意一个进行比较,得到TRUE时,就会返回TRUE。
    2. ALL :ALL必须与比较操作符一起使用。ALL的意思是“对于子查询返回的列中的所有值,如果比较结果为TRUE,则返回TRUE”。
      • 例如 “6 >all(2, 4, 5, 1)”,由于6大于集合中的所有值,所以这条判断就返回TRUE;而如果为“6 >all(2, 4, 5, 1,9)”,其中6小于9,因此该判断会返回FALSE。
    3. IN :用于判断一个给定值是否存在于子查询的结果集中。
    4. EXISTS :用于判断子查询的结果集是否为空。若子查询的结果集不为空,则返回 TRUE;否则返回 FALSE。(检测 行 的存在)
    5. 比较运算符 :“<”、“<=”、“>”、“>=”、“!=”等。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL多表查询
    • 内连接查询:
      • 外连接查询:
        • 复合条件连接查询
          • 子查询(嵌套查询)
          相关产品与服务
          云数据库 MySQL
          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档