MySQL —— 多表联合查询

本文详细介绍了MySQL中的多表查询,包括交叉连接查询、内连接查询(INNER JOIN)、外连接查询(LEFT JOIN, RIGHT JOIN)以及子查询和自关联查询。重点讲解了各种查询的使用场景和语法,并提供了相关示例,帮助理解多表查询的实现方式和优化技巧。" 135136326,5069989,TrustZone中的软件切换机制,"['ARM安全架构', '软件调度', '安全中断', 'TrustZone技术']
摘要由CSDN通过智能技术生成

介绍

多表查询就是同时查询两个或两个以上的表,因为有的时候用户在查看数据的时候,需要显示的数据来自多张表,多表查询有以下分类:

  • 交叉连接查询:
select * from A,B;
  • 内连接查询(使用的关键字inner join --inner可以省略)
#隐式内连接(SQL92标准)
select * from A,B where 条件;
#显示内连接(SQL99标准)
select * from A inner join B on 条件;
  • 外连接查询(使用的关键字outer join --outer可以省略)
#左外连接
select * from A left outer join B on 条件;
#右外连接
select * from A right outer join B on 条件;
#满外连接
select * from A full outer join B on 条件;
  • 子查询:select的嵌套
  • 表自关联:将一张表当成多张表来用

注意: 外键约束对于多表查询并无影响

交叉连接查询

  • 交叉连接查询返回被连接的两个表所有数据行的笛卡尔积
  • 笛卡尔积可以理解为一张表的每一行去和另外一张表的任意一行进行匹配
  • 假如A表有M行数据,B表有N行数据,则返回M*N行数据
  • 笛卡尔积会产生很多冗余的数据,后期的其他查询可以在该集合的基础上进行条件筛选
#格式:
select * from1,2,3...;
#实现:
select * from dept,emp;

内连接查询

内连接查询求多张表的交集

#格式:
select * from A,B where 条件; --隐式内连接(SQL92标准)
select * from A inner join B on 条件; --显示内连接(SQL99标准)
#实现:
//查询每个部门的所属员工
select * from
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值