假设有如下两个表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