我无法有效地理解这两个查询之间的区别.
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)
在这种情况下,我认为两者都不会是性能更好的查询;但是,如果查询处理更多数据更复杂,该怎么办?
谢谢!
如果您想了解有关此主题的更多信息,可以尝试使用Google搜索"join vs where".以下是其他一些解决同一问题的问题:
第三个引用很有意思(关于SQL Server,但它们的行为可能相似):
如果您衡量这一点,您很可能会发现这两个版本使用完全相同的访问计划.SQL Server非常努力地优化查询,在该过程中,将两个表中的列等同的where子句将转换为内部联接.
这些似乎表明,从技术上讲,连接是正确的,并且比在哪里更有效,但在实践中并不重要,因为优化可能会纠正连接的位置.但是,对于不进行优化的情况,最好是明确的,并且正如其他人所指出的那样,这join是正确的方法.