Mysql中natural join和inner join的区别


假设有如下两个表TableA,TableB

TableA TableB Column1 Column2 Column1 Column3 1 2 1 3

TableA的Column1列名和TableB的Column1列名相同。

SELECT * FROM TableA INNER JOIN TableB USING (Column1)
SELECT * FROM TableA INNER JOIN TableB ON TableA.Column1 = TableB.Column1

这两个查询语句的功能是一样的,都是以Column1作为连接查询,返回结果:

a.column1 a.column2 b.column1 b.column3 1 2 1 3

a.和b.是为了表示属于TableA或TableB的列,实际是不会显示了,它会把两个相同的column1都显示出来。

SELECT * FROM TableA NATURAL JOIN TableB

这句返回结果:

column1 column2 column3 1 2 3

它会去除重复的列名,而且使用natural join的时候不能指定join哪个column,是严格安装相同的列名join的。


参考:http://stackoverflow.com/questions/8696383/difference-between-natural-join-and-inner-join
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM