sql >> Databasteknik >  >> RDS >> Mysql

Kan någon hjälpa till att förklara varför det är dåligt och fel att använda en SQL JOIN?

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.



  1. Hur uppgraderar jag osCommerce Database från v2.2 till v2.3

  2. Hur infogar jag javascript i mysql-databasen?

  3. Neo4j installation

  4. En guide till MySQL-index