sql的几种连接

最近找工作复习mysql,涉及到sql的几种join

A表

idname
1zhang
2li
3wang
4zhao
B表
idname
2zhao
4qian
5wu
7zhang

1.inner join:

是一种内连接,也是一种普通的连接,只是将A和B中所指定属性中的相同的元素选择出来(其中又分为等值连接和不等值连接,如下例就是等值连接)

select * from A inner join B on A.name = B.name

A.idA.nameB,idB,
name
1zhang7zhang
4zhao2zhao
也就相当于是选择两者的交集

2.natrual join 自然连接
自然连接不需要选择属性,他要求两个关系中进行比较的分量必须是相同属性组,并且在结果中把重复的属性列去掉(而等值连接就不需要去掉重复的额属性列)

select * from A natrual join B
A.idnameB.id
1zhang7
4zhao2
3.left outer join , right outer join, full outer join
三种中结果会出现null,也都需要指定属性

4.cross join就是普通的笛卡尔积

3和4可以参考Difference between Inner Join & Full join

Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值