何时使用JOIN for MySQL(SQL)

Jes*_*sse 3 mysql join

我无法有效地理解这两个查询之间的区别.

select *
from person p, mytlc m
where p.personid = m.personid and p.personid = 3635

select *
from person p
    join mytlc m on p.personid = m.personid
where p.personid=3635
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我认为两者都不会是性能更好的查询;但是,如果查询处理更多数据更复杂,该怎么办?

谢谢!

mel*_*okb 5

如果您想了解有关此主题的更多信息,可以尝试使用Google搜索"join vs where".以下是其他一些解决同一问题的问题:

  1. 内连接vs其中
  2. MySQL:内部联接vs Where
  3. http://forums.devx.com/showthread.php?t=19242

第三个引用很有意思(关于SQL Server,但它们的行为可能相似):

如果您衡量这一点,您很可能会发现这两个版本使用完全相同的访问计划.SQL Server非常努力地优化查询,在该过程中,将两个表中的列等同的where子句将转换为内部联接.

这些似乎表明,从技术上讲,连接是正确的,并且比在哪里更有效,但在实践中并不重要,因为优化可能会纠正连接的位置.但是,对于不进行优化的情况,最好是明确的,并且正如其他人所指出的那样,这join是正确的方法.