首页 > 数据库 >MySQL联表查询之连接和子查询

MySQL联表查询之连接和子查询

时间:2023-05-20 20:55:11浏览次数:39  
标签:语句 和子 查询 ..... 联表 列表 连接 select

一.连接

内连接:

内连接一共有两种方式:

隐式内连接:

select  字段名 from  表1,表2  where  条件 .....;

显式内连接:

select  字段名 from  表1 [inner]  join 表2  on  连接条件 ;

 内连接就是查询绿色部分,也就是两张或多张表相同的地方

最多的就是等值连接

外连接:

左外连接:

select 字段列表 from  表1 left join 表2  on 条件 .....;

上图中: A 蓝色区域

右外连接:

select 字段列表 from  表1 right join 表2  on 条件 .....;

上图中: B黄色区域

自连接:

自连接,就如它的名字一样,就是一张表自己连接自己,在自连接中一定要为表名取别名,这样才知道条件中事那个表的字段

select 字段列表  from  表A  as  a  jion  表A   as b   on  条件.....;

二.联合查询

联合查询指的是使用两个sql 去查询两张表,然后拼接成一次结果集返回

关键字:

union  : 拼接的结果去重

union  all:拼接的结果不去重

select  字段列表  from  表 1 ..... 

union

select  字段列表  from  表 2 ..... 

注意:查询出来的结果集字段属性一定是要一样的,不然是拼接不了的

三.子查询

在sql语句中嵌套 select语句成为子查询

子查询语句可以被嵌套到 delete,update,insert ,select 语句中,不仅仅是只能嵌套到select 语句中

select  字段列表  from  表1 where  colum = (select  colum from  表2);

标量子查询:

子查询返回的值是单个值(数据,字符串,日期),这些最简单的形式

常用的操作符:  =   ,  <> ,  >  ,  >=  , <  ,  <=

列子查询:

子查询返回的值是一列

常用的操作符:

in :在范围内

not  in:不在范围内

any :有一个满足即可

some:与any 相同

all:所有返回值必须全部相同

行子查询:

子查询返回值的是一行

常用的操作符:

=  , <>  ,  IN  ,  NOT  IN

表子查询:

子查询返回的结果是多行多列,相当于一个小子表

常用操作符:IN

 

标签:语句,和子,查询,.....,联表,列表,连接,select
From: https://www.cnblogs.com/5ran2yl/p/17417771.html

相关文章

  • Python接口MongoDB实现接口查询数据库功能
    一、所需工具Python,pymongo,Mongodb,Flask二、安装1、安装Python我这里安装的是 3.8.0版本,输入python-V可以查看当前版本    2、安装pymongo命令行中输入  pip3installpymongo 命令执行即可完成安装。3、服务器安装Mongodb环境:linux系......
  • es笔记三之term,match,match_phrase 等查询方法介绍
    本文首发于公众号:Hunter后端原文链接:es笔记三之term,match,match_phrase等查询方法介绍首先介绍一下在es里有两种存储字符串的字段类型,一个是keyword,一个是text。keyword在存储数据的时候是作为一个整体存储的,不会对其进行分词处理text存储数据的时候会对字符串进行分......
  • 数据列表管理-顶部查询条件的自定义代码参考
     银行:<selectid="sl_bank"class="fsbpmserachcontrolsearch_select"myts="sl"></select>状态:<selectid="sl_status_filter"class="fsbpmserachcontrolsearch_select"myts="sl"><......
  • Oracle分页查询,rownum的使用方式
    rownum只能使用<=不能使用>或>=rownum是oracle从缓冲区中读取文件的顺序,是oracle生成的伪列第一条rownum数值为1,第二条rownum数值为2......当使用>=的时候由于第一条值为1,不满足,所以被删除第二条的rownum值变为1,还是不满足,所以被删除...oracle分页select*from(......
  • MySQL查询重复数据
    工作中我们经常会遇到查询数据表中重复数据的需求,可以用count、groupby、having实现,将要查重复的字段进行分组,并计算每个字段出现的次数,最后使用having查询出现次数大于0的数据。示例SQL如下:SELECT phone, count(phone)FROM `user`GROUPBY phoneHAVING count(phon......
  • Get-MMagent 是一个命令,通常用于查询与 Microsoft Management Agent (MMAgent) 相关的
    Get-MMagent是一个命令,通常用于查询与MicrosoftManagementAgent(MMAgent)相关的属性和配置信息。MMAgent是一款基于云计算技术的软件代理程序,用于帮助配置管理、安全性和监视方案。在Windows平台上,MMAgent通常用于实现高效的云端管理和自动化操作,包括AzureMonitor等相......
  • MyBatis 在大数据量下使用流式查询进行数据同步
    通常的数据同步中,如果数据量比较少的话可以直接全量同步,默认情况下,完整的检索结果集会将其存储在内存中。在大多数情况下,这是最有效的操作方式,并且由于MySQL网络协议的设计,因此更易于实现。但是如果数据量很大的话,全量同步需要大量的内存,如果内存不足的话则可能会导致内存溢出。......
  • 公共查询
    #查看分区数据SELECTtable_name,partition_name,partition_description,from_days(partition_description),table_rowsFROMinformation_schema.PARTITIONSWHEREtable_name='AIR_ORDER';#分析分区ALTERTABLEAIR_ORDERANALYZEPARTITIONissue2022;#SHOWCREA......
  • 开发手记:Redis中zset查询的range
    问题描述从Redis中查询关注列表(使用zset存储),但是查询到的记录总是比应有的记录数少一个Set<Integer>targetIds=redisTemplate.opsForZSet().reverseRange(key,offset,offset+limit-1);调试于是去检查Redis中置顶键zset中的所有数据,发现自己对zset相关命令似乎并不太......
  • Mybatis查询
    查询查询的数据为单条实体类使用实体类进行接受即可,或者使用list,map接口均可.后面两者比较浪费使用实体类接受mapper接口:UserselectUserById(intuserid);映射文件:使用实体类<!--第二个一致,对应方法名UserselectUserById(intuserid);--><selec......