Het is waar dat beide vormen van syntaxis hetzelfde resultaat zouden moeten geven en intern voert MySQL ze allebei op precies dezelfde manier uit. Huidige versies van de SQL-standaard ondersteunen beide vormen, hoewel de komma-stijl alleen wordt ondersteund omwille van achterwaartse compatibiliteit.
Er is een geval waarin het gebruik van de komma-achtige syntaxis mislukt, maar het is exotisch:
SELECT * FROM A, B JOIN C ON C.x = A.y;
De JOIN
operator heeft een hogere prioriteit dan de komma. Dus zoals de bovenstaande query probeert C.x = A.y
. te evalueren het weet niet eens dat A
maakt deel uit van de vraag. U krijgt dus een foutmelding:
ERROR 1054 (42S22): Unknown column 'A.y' in 'on clause'
De beste remedie is om de JOIN
. te gebruiken syntaxis consistent in plaats van ze te mixen.
Ook kun je geen outer joins maken met de comma-join syntax. Oracle en Sybase/Microsoft hebben elk hun eigen gepatenteerde syntaxis uitgevonden voor het afhandelen van outer joins, maar geen van beide wordt ondersteund door andere merken van RDBMS. Tegenwoordig ondersteunen alle huidige versies van RDBMS, inclusief Oracle en Sybase/Microsoft, de standaard JOIN
syntaxis, dus er is geen goede reden om de oude leverancierspecifieke extensies te gebruiken.