首页 > 数据库 >mysql知识总结-连接查询

mysql知识总结-连接查询

时间:2022-08-23 10:46:56浏览次数:66  
标签:匹配 连接 查询 mysql 左表 join 链接 Left

Join链接方式

Left join 左边的表为左表,right join右边的表为右表

1、左链接
1.1、 是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。其语句为Left join .. on
1.2、 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。**
注释:在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。image
image


2、右链接
2.1、 右向外联接是左向外联接的反向联接,是以右表为基础,返回右表的所有行,和左链接没有本质上的区别,在下述代码中,我们将user_profile和question_practice_detail的顺序颠倒,使用Right join匹配的结果与上一节中Left join的结果是完全一致的,在实际使用中,一般使用Left join就可以满足需求
2.2、right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录


3、内链接
3.1、内连接是A表的所有行和B表的所有行在指定条件下得到的交集,所用到的语句为Join
3.2、inner join(等值连接) 只返回两个表中联结字段相等的行


笛卡尔积

在写表与表之间的链接关系时,大多数情况下都必须要限制匹配条件,如果在匹配时没用限制匹配条件,这时就会导致笛卡尔积。笛卡尔积是关系代数里的一个概念,表示两个表中的每一行数据任意组合,即假设表A中有n行数据,表b中有m行数据,没有限制匹 配条件的话,最终输出的结果就会有mn行数据,在互联网大体量数据情况下,每个表 可能有几百万几千万行数据,几千万几千万最终得到的结果行数会是天文数字,所以在写匹配时,一定不要忘了加上匹配条件。

标签:匹配,连接,查询,mysql,左表,join,链接,Left
From: https://www.cnblogs.com/randamao666/p/16615288.html

相关文章

  • 三道MySQL联合索引面试题,淘汰80%的面试者,你能答对几道
    众所周知MySQL联合索引遵循最左前缀匹配原则,在少数情况下也会不遵循(有兴趣,可以翻一下上篇文章)。创建联合索引的时候,建议优先把区分度高的字段放在第一列。至于怎么统计区......
  • maven工程(二)运行环境修改和获取mysql数据库数据
    运行环境修改可以加上这个进行定义,你tomcat运行的端口<build><plugins><plugin><!--https://mvnrepository.com/artifact......
  • MySQL和Navicat安装过程记录Win10
    安装MySQL双击下载好的文件点击Execute,等待绿勾后Finish验证配置环境变量以在命令行使用Win+R,输入cmd回车,输入mysql-uroot-p登录成功 ......
  • postgresql从库查询被终止怎么办
    一,问题描述:PG流复制场景下,默认配置下,如果在PG从库执行长时间的查询,会出现查询的报错。提示ERROR:cancelingstatementduetoconflictwithrecoveryDETAIL:Userqu......
  • 基于StatefulSet控制器运行MySQL一主多从
    1、下载相关镜像并上传到harbor私有仓库拉取官网镜像nerdctlpullregistry.cn-hangzhou.aliyuncs.com/hxpdocker/xtrabackup:1.0nerdctlpullmysql:5.7.36对镜像tag......
  • Mybatis下@Select注解下使用like模糊查询
    Mybatis下@Select注解使用模糊查询要使用concat方法拼接%百分号和关键词,案例如下:packagecom.xzit.mapper;importcom.xzit.entity.Emp;importorg.apache.ibatis.ann......
  • 2022-08-20 数据库连接池
    数据库连接池每次去初始化一个连接池,连接池中会有很多个连接等待被使用,使用完连接之后,不需要关闭连接,只需要把连接还回到连接池,还回到连接池的操作不需要我们手动控制。......
  • mysql部分--安装mysql 8.0以上版本
    安装mysqlmysql本质上是一个软件一、mysql安装1.下载链接:https://downloads.mysql.com/archives/community/2.先安装windows补丁[百度网盘下载](链接:https://pan.baid......
  • MybatisPlus系列---【时间查询】
    1.问题描述项目中经常遇到这样的问题,有个查询条件是日期,或者日期范围,但是数据库一般存的是日期时间,想要查询,肯定要做格式化后再比较。不使用MybatisPlus的时候,一般都......
  • Docke 搭建 apache2 + php8 + MySQL8 环境
    Docker安装执行Docker安装命令curl-fsSLhttps://get.docker.com/|sh启动Docker服务sudoservicedockerstart查看Docker是否正常工作sudo......