mysql 连接查询

连接查询

就是将两个或两个以上的表,“连接起来”,当做一个数据源,并从中去取得所需要的数据;

交叉连接 cross join:

没有条件,只是按连接的基本概念,将所有数据行都连接起来的结果。它又叫做“笛卡尔积”;

对于表1(n1个字段,n2行),表2,(m1个字段,m2行),他们交叉连接的结果是:

  • 有n1+m1个列;
  • 有n2*m2个行;

形式有:

  • select * from 表1, 表2;
  • select * from 表1 join 表2;
  • select * from 表1 cross join 表2;

例:
这里写图片描述
这里写图片描述
结果:
这里写图片描述

内连接 inner join:

形式:select * from 表1 【inner】 join 表2 on 连接条件;

例:
这里写图片描述
结果:
这里写图片描述

注意:这种的表跟表之间的内连接查询,虽然可以体现为表跟表之间的“关系”——通常就是外键关系——但并不是有外键关系才能使用这种连接。

可以使用as为其设置别名:
这里写图片描述

左(外)连接 left (outer) join:

形式:

表1(左表)  left  【outer】 join  表2(右表)  on  连接条件

含义:其实就是将两个表的内连接的结果,再加上左边表的不符合内连接所设定的条件的那些数据的结果;

例:
这里写图片描述
结果:
这里写图片描述

可见,左连接的结果,左边表的数据,一定都会“全部取出”;

右(外)连接 right (outer) join:

形式:

表1(左表)  right  【outer】 join  表2(右表)  on  连接条件

含义:其实就是将两个表的内连接的结果,再加上右边表的不符合内连接所设定的条件的那些数据的结果;

例:
这里写图片描述
结果:
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值