sql >> Database teknologi >  >> RDS >> Mysql

Hvad er standard MySQL JOIN-adfærden, INNER eller YDRE?

I MySQL skriver du JOIN ukvalificeret indebærer INNER JOIN . Med andre ord den INNER i INNER JOIN er valgfri. INNER og CROSS er synonymer i MySQL. For klarhedens skyld skriver jeg JOIN eller INNER JOIN hvis jeg har en join-betingelse og CROSS JOIN hvis jeg ikke har en betingelse.

Den tilladte syntaks for joins er beskrevet i dokumentationen .

Effekten er den samme, men historien bag dem er anderledes. Kommasyntaksen er fra ANSI-89-standarden. Der er dog en række problemer med denne syntaks, så i ANSI-92-standarden blev JOIN-nøgleordet introduceret.

Jeg vil kraftigt anbefale, at du altid brug JOIN-syntaksen i stedet for kommaet.

  • T1 JOIN T2 ON ... er mere læsbar end T1, T2 WHERE ... .
  • Det er mere vedligeholdeligt, fordi tabelrelationerne og filtrene er klart definerede i stedet for at blive blandet sammen.
  • JOIN-syntaksen er lettere at konvertere til OUTER JOIN end kommasyntaksen.
  • At blande komma- og JOIN-syntaksen i den samme sætning kan give mærkelige fejl på grund af forrangsreglerne.
  • Det er mindre sandsynligt, at du ved et uheld opretter et kartesisk produkt, når du bruger JOIN-syntaksen, på grund af en glemt join-klausul, fordi join-sætningerne er skrevet ved siden af ​​joins, og det er let at se, om der mangler en.


  1. Maksimal længde for tekst af MySQL-typen

  2. oracle jdbc driver version galskab

  3. latin-1 til utf-8 database

  4. Hvis der findes en tabel, skal du oprette den, hvis den ikke findes, skal du bare oprette den