关于MySQL的各种 join

下面是几种join的定义和区别

  • inner join:内连接(可省略 inner),会筛选出连接的两张表里都符合条件的数据
  • left/right outer join:左/右连接,符合条件的左/右表数据一定存在,此时对应的右/左表数据可能为null
  • cross join:交叉连接,会产生笛卡尔积,标准SQL里cross join 后面不带 on 关键字,但MySQL可以带(MySQL里面 cross join 和 inner join 完全一致)
  • natural [{left/right} [outer]] join:自然连接,自动将两张表里面具有相同名称、类型、长度的字段连接起来(注意符合条件的字段不能超过一个)
  • straight_join: 直接连接(MySQL独有),结果和 inner join 完全一致,不同的是 straight_join 强制 table1 表先于 table2 表载入(inner join 是优化器决定载入顺序)

MySQL的join用法: https://dev.mysql.com/doc/refman/5.7/en/join.html

转载于:https://my.oschina.net/u/3917923/blog/3011603

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值