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
 
posted @ 2016-03-17 14:22  mrhyher  阅读(5908)  评论(0编辑  收藏  举报