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

一.连接

内连接:

内连接一共有两种方式:

隐式内连接:

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

 多重嵌套子查询:

 

posted @   回忆也交给时间  阅读(848)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示