Hello,
mysql> SELECT * FROM table1,table2 WHERE table1.id=table2.id;
mysql> SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id;
mysql> SELECT * FROM table1 LEFT JOIN table2 USING (id);
These are all semantically identical in mysql.
No, these are not all semantically equivalent:
LEFT JOIN is just an abbreviation for LEFT OUTER JOIN, so it can produce
more rows (including the entries in table1, for which no join partner is
available in table2).
Using a simple JOIN would be semantically equivalent:
SELECT * FROM table1,table2 WHERE table1.id=table2.id;
SELECT * FROM table1 JOIN table2 ON table1.id=table2.id;
SELECT * FROM table1 JOIN table2 USING (id);
Best regards,
Michael