MySQL将两个表中的记录与join和without组合在一起

Vic*_*huk 6 mysql sql join

这两个查询之间有什么区别:

SELECT `threads`.`id` AS `threads.id` , `posts`.`id` , `posts`.`content`
FROM `threads`
JOIN `posts` ON `threads`.`id` = `posts`.`thread_id`
Run Code Online (Sandbox Code Playgroud)

SELECT `threads`.`id` AS `threads.id` , `posts`.`id` , `posts`.`content`
FROM `threads` , `posts`
WHERE `threads`.`id` = `posts`.`thread_id`
Run Code Online (Sandbox Code Playgroud)

他们都返回相同的数据.

sll*_*sll 4

WHERE子句过滤返回的结果集JOIN,所以这是一个区别。

只要您使用的INNER JOIN性能和执行计划都没有差异,任何OUTER JOIN查询都会产生不同的执行计划。

另请注意MySql 在线文档中的内容:

通常,您应该使用 ON 子句作为指定如何连接表的条件,并使用 WHERE 子句来限制结果集中需要哪些行。