2010-01-20 61 views
4

我在想,如果'正常'内部连接导致MySQL查询中执行性能更高,而不是简单查询,那么列出所有表,然后将它们与'和t1.t2id = t2一起加入。 id'等。MySQL连接性能与相关查询

+0

对于参考任何其他人遇到这样的道路,就像我做的... http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause提供了大量的细节差异和好处。 – JeopardyTempest 2016-07-28 10:10:40

回答

6

执行计划和运行时相同。 一个被称为ANSI风格(INNER JOIN,LEFT,RIGHT)另一个被称为Theta风格。

这两个查询是在各方面都等同于MySQL服务器

SELECT * FROM A INNER JOIN B ON A.ID = B.ID; 

SELECT * FROM A, B WHERE A.ID = B.ID; 

您可以通过键入解释两种查询前,返回应该是相同的结果进行测试。

+0

@yada我会对更多信息感兴趣。我猜他们是一样的,因为mysql的优化? – corymathews 2010-01-20 15:02:19

+1

它只是风格上的差异。就像有两种方式在SQL中进行注释 - 或/ * * /一样。 搜索谷歌的Theta与ANSI SQL风格。 http://www.86db1.com/sql-join-syntax-theta-vs-ansi – Yada 2010-01-20 15:39:48

+1

FWIW,两种语法形式在ANSI SQL标准中均受支持。 – 2010-01-20 16:41:56