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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45104211/article/details/99695617

一、什么是多表查询?

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

二 、内连接

#第一种形式
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寻找数据库信息的需求十分渺小;

猜你喜欢

转载自blog.csdn.net/weixin_45104211/article/details/99695617