Det är sant att båda formerna av syntax ska ge samma resultat och internt kör MySQL båda på exakt samma sätt. Aktuella versioner av SQL-standarden stöder båda formerna, även om kommastilen endast stöds för bakåtkompatibilitetens skull.
Det finns ett fall där användningen av kommaliknande syntax misslyckas, men det är exotiskt:
SELECT * FROM A, B JOIN C ON C.x = A.y;
JOIN
operatorn har högre prioritet än kommatecken. Så eftersom frågan ovan försöker utvärdera C.x = A.y
den vet inte ens att A
är en del av frågan. Så du får ett felmeddelande:
ERROR 1054 (42S22): Unknown column 'A.y' in 'on clause'
Den bästa lösningen är att använda JOIN
syntax konsekvent istället för att blanda dem.
Du kan inte heller skapa yttre kopplingar med komma-join-syntaxen. Oracle och Sybase/Microsoft uppfann var sin egen syntax för hantering av yttre anslutningar, men ingen av dem stöds av andra märken av RDBMS. Idag stöder alla nuvarande versioner av RDBMS inklusive Oracle och Sybase/Microsoft standarden JOIN
syntax, så det finns ingen bra anledning att använda de äldre leverantörsspecifika tilläggen.