There is a difference. You should do a PLAY EXPLAIN for both options and see it in detail.
As for the simpler explanation: The WHERE clause is executed only after joining the two tables, so it is executed for each row returned from the join, and not from each table from table2.
Performance best eliminates unwanted results at an early stage, so there should be fewer lines for joins where additional operations or other operations will continue to operate.
In the second example, there are two columns that should be the same for the rows that should be joined together, so usually they will give different results than the first.
Azder
source share