我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文继续描述个更为罕见的mysql语法,叫做自然连接。是不是一脸懵逼了?说起来,就要先说前文中的usingon的简化版语句。而本文中将要描述的自然连接则是using的简化版。

苏南大叔:mysql,如何理解自然连接 nature join 语句? - mysql-自然连接
mysql,如何理解自然连接 nature join 语句?(图5-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文测试环境:win10mysql@5.7.26MySQLFront@5.3

前文回顾

因为自然连接是using的再次简化版本,所以这里沿用上一个using文章中的测试样本。参考文章:

可以正确执行的语句是:

select * from posts inner join users2 using(user_id)

它能够正确执行的前提是,postsusers里面都有个字段叫做user_id,并且这两个字段表示的意思相同。

自然连接natural

自然连接是using的简化版,就是连这个相同字段都用不指明了,程序自己去寻找判断表之间的关联关系。说实话,这个就有点不靠谱了,是不是极有可能判断错误?

自动匹配错误的范例:

SELECT * FROM users natural join posts

苏南大叔:mysql,如何理解自然连接 nature join 语句? - 自然匹配数据错误
mysql,如何理解自然连接 nature join 语句?(图5-2)

自动匹配正确的范例:

SELECT * FROM users2 natural join posts

苏南大叔:mysql,如何理解自然连接 nature join 语句? - 自然匹配数据正确
mysql,如何理解自然连接 nature join 语句?(图5-3)

笛卡尔积naturanature

这个笛卡尔积和自然连接的语句拼写非常相似,但是功能上就差很多了。
笛卡尔积的数据,仅仅是左边*右边的自然排列组合。
下面有两条语句可选:

SELECT * FROM users2 natura join posts
SELECT * FROM users2 nature join posts

苏南大叔:mysql,如何理解自然连接 nature join 语句? - 排列组合一
mysql,如何理解自然连接 nature join 语句?(图5-4)

苏南大叔:mysql,如何理解自然连接 nature join 语句? - 排列组合二
mysql,如何理解自然连接 nature join 语句?(图5-5)

相关文章

总结

更多mysql相关经验文章,请参考苏南大叔的博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   mysql