MYSQL基础---多表联查

多表联查

数据为什么需要多表联查 ?

  1. 数据来源多张表的时候需要进行关联
  2. 在实际开发过程中很多需要同时多个表中的数据


内连接 inner join

内连接和外连接一样都是最常用的连接查询,它根据表中共同的列进行匹配,特别时两个表存在主外键关系时,通常会使用内连接查询内连接也是等值连接,返回的结果集时两个表中所有相匹配的数据,舍弃不匹配的数据

等值连接(隐式内连接)                  简单,出问题不好调

select 列名 。。。 from 表1,表2,表3 。。。 where 关联条件,还可以过滤条件


 

inner join 内连接 (显示内连接)on,     扩展方便

select 列名 ,… from 表1

[inner]   join  表2 on 关联条件

[inner]   join  表3 on 关联条件

[inner]   join  表4 on 关联条件

[inner]   join  表5 on 关联条件

where 过滤条件;

外连接

外连接式至少返回一个表中的所有记录,根据匹配条件有选择性地返回另外一张表的记录 外连接就是在满足表连接关系的情况下不但可以查找出匹配的数据,而且还可以包括坐标,右表或者两表中的所有数据行

左外连接left join on 条件

左外连接左表完整,如果不匹配null值填充

右外连接right join on 条件

右外连接右表完整,如果不匹配null填充

交叉连接 (笛卡尔乘积) corss join   (不需要条件的连接)

子查询

 

联合查询

union 合并去重复 两个的集合并集,并且会排重

如果是一个字段,重复直接去掉,如果是多个字段,都相同才会去重

union all : 但是不会去重  (union all 查询效率要比union高)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值