mysql中join的四种连接

MySQL是通过Join语句把两个或多个表连接起来,而生成的新表可以被当成表来使用,也可以保存起来。Join语句的含义是把两张表的属性通过它们的值组合在一起.
1. 内连接
表A与表B进行内连接,就是将表A的某属性与表B的相应属性进行逐行比较,找出满足条件的组合,并按照输出需求合并成一行。有两种:相等连接和自然连接。
例如——相等连接(最常用)

查询的是列出所有城市的所属国家以及独立年份。用的内连接(inner join),两张表都满足连接条件,都不为空。
【原创】MySQL如何实现四种连接

例如——自然连接
表A与表B做自然连接时,两表中的所有名称相同的列都将被比较,这是隐式的。自然连接得到的结果表中,两表中名称相同的列只出现一次。
【原创】MySQL如何实现四种连接

MySQL不支持Natural join,可以用一般的多表查询实现。
【原创】MySQL如何实现四种连接

2. 左外连接
若表A与表B进行左外连接的话,查询结果中包含左表的所有记录;如果右表没有符合匹配条件的记录则显示为Null。
例如:
查询的是列出所有城市的所属国家以及独立年份。用的左连接(left join),左表的记录全部显示,右表没有匹配Oranjestad城市的国家,所以显示为Null。
【原创】MySQL如何实现四种连接

3. 右外连接
若表A与表B进行右外连接的话,查询结果中包含右表的所有记录;如果左表没有符合匹配条件的记录则显示为Null。
例如:
查询的是列出所有城市的所属国家以及独立年份。用的右连接(right join),右表的记录全部显示,左表没有匹配AFG的城市,所以显示为Null。
【原创】MySQL如何实现四种连接

4.全外链接(MySQL不支持全连接,因为Null值不能参加运算)
全连接是左右外连接的并集. 连接表包含被连接的表的所有记录, 如果缺少匹配的记录, 即以 NULL 填充.
我只安装了MySQL,所以截个别人的例子:
【原创】MySQL如何实现四种连接
MySQL如果想要实现全连接的效果,可以用Union。Union将左连接和右连接的两张结果表做成并集。
【原创】MySQL如何实现四种连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值