Explicit vs implicit SQL joins

join, sql

Solution

Performance-wise, they are exactly the same (at least in SQL Server).

PS: Be aware that the "implicit `OUTER JOIN`" syntax--using `*=` or `=*` in a `WHERE` after using comma--is deprecated since SQL Server 2005. (The "implicit (`CROSS`) `JOIN`" syntax using comma as used in the question is still supported.)

Deprecation of "Old Style" JOIN Syntax: Only A Partial Thing

Problem

Is there any efficiency difference in an explicit vs implicit inner join? For example: ``` SELECT * FROM table a INNER JOIN table b ON a.id = b.id; ``` vs. ``` SELECT a.*, b.* FROM table a, table b WHERE a.id = b.id; ```

Original source

Related problems