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

Hvordan bruger man mysql JOIN uden ON-tilstand?

MySQL dokumentation dækker dette emne.

Her er en synopsis. Når du bruger join eller inner join , on tilstand er valgfri. Dette er forskelligt fra ANSI-standarden og forskelligt fra næsten enhver anden database. Effekten er en cross join . På samme måde kan du bruge en on klausul med cross join , som også adskiller sig fra standard SQL.

En krydsforbindelse skaber et kartesisk produkt -- det vil sige enhver mulig kombination af 1 række fra den første tabel og 1 række fra den anden. Krydset for en tabel med tre rækker ('a', 'b' og 'c') og en tabel med fire rækker (f.eks. 1, 2, 3, 4) ville have 12 rækker.

I praksis, hvis du vil lave en cross join, så brug cross join :

from A cross join B

er meget bedre end:

from A, B

og:

from A join B -- with no on clause

on klausul er påkrævet for en højre eller venstre ydre joinforbindelse, så diskussionen er ikke relevant for dem.

Hvis du har brug for at forstå de forskellige typer joinforbindelser, så skal du studere relationelle databaser. Stackoverflow er ikke et passende sted for det diskussionsniveau.



  1. Postgres FEJL:kunne ikke åbne filen til læsning:Tilladelse nægtet

  2. Gem byte[] i en SQL Server-database fra C#

  3. tilføj kolonne til mysql-tabellen, hvis den ikke eksisterer

  4. Sådan fungerer funktionen WEIGHT_STRING() i MySQL