MySQL数据库多表查询中的三种连接

一、什么是多表查询?

    通过一次查询将多个表中所需的信息罗列出来,其类型包括:内连接,外连接,检查连接

二 、内连接

#第一种形式
select  ui.*,addr.* from user_info ui,address addr where addr.user_id=ui.id
#第二种形式
select ui.*,addr.* 
from user_info ui
inner join address addr on addr.user_id=ui.id

    必须输出两个表中id都相同进行拼合(即满足on后面的语句):

三、外连接

  1、左外连接与右外连接:

#二、外连接
#左外链接
select ui.*,addr.* 
from user_info ui 
left join address addr  on ui.id = addr.user_id;
#右外链接
select ui.*,addr.* 
from user_info ui 
right join address addr  on ui.id = addr.user_id;

    作用:以关键字left(right)为参照物,用其左(右)为主表:此时必须满足on后面的条件的同时并且输出主表中的全部数据(即使该数据不对应从表中的数据)

    注:此处仅仅使用左外连接举例

    2、全外连接:

    该外连接在MySQL数据库中不支持:其作用就是不仅满足on后面的条件,还要将两个表中不匹配的数据输出

四、交叉连接

    左表(“cross join”关键字左边的表)中的每一行与右表(“cross join”关键字右边的表)中的所有行组合,交叉联接的结果是一个笛卡尔积

        此时的数据匹配种类过于多样化,一般来讲:该方法的作用对一些需要通过对应ID寻找数据库信息的需求十分渺小;

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值