mysql 里面JOIN 和 INNER JOIN 区别是什么

SELECT a.* from a as a JOIN
(SELECT userName ,count(userName) as count FROM a GROUP BY `userName`) as b
WHERE
a.userName=b.userName
order BY b.count desc,b.userName asc
加了个inner显示结果不一样 之前一种以为join和inner join是等价的 看来不是

一、指代不同

1、JOIN:用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

2、INNER JOIN :组合两个表中的记录,只要在公共字段之中有相符的值。

二、特点不同

1、JOIN:每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

2、INNER JOIN :只要在这两个表的公共字段之中有相符值,内部联接将组合两个表中的记录。


三、规定不同

1、JOIN:如果表中有至少一个匹配,则返回行。

2、INNER JOIN :被联接的字段的名称。若不是由数字构成的,则这些字段必须为相同的数据类型并包含同类数据,但无须具有相同的名称。

参考资料来源:百度百科-INNER JOIN

参考资料来源:百度百科-SQL语句大全

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
但的确是等价的哦,没对比一下结果集中的记录是一样的吗?只是记录的顺序不一样哦。join是自然连接,对两张表中字段名和数据类型都相同的字段进行等值连接,并返回符合条件的结果,而inner join是内连接,显示符合连接条件的记录,连接条件已经指明了。这里需要注意join的时候和inner join连接时使用的连接条件是不一样的,所以在结果中记录出现的顺序会有所不同,但两个结果结合是一样的。本回答被网友采纳
相似回答