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

Forskellen mellem disse to sammenføjningstabeller?

Bortset fra syntaks, for det lille uddrag, fungerer de nøjagtigt det samme. Men hvis det overhovedet er muligt, så skriv altid nye forespørgsler ved hjælp af ANSI-JOINs.

Med hensyn til semantisk bruges kommanotationen til at producere et CARTESIAN produkt mellem to tabeller, hvilket betyder at producere en matrix af alle poster fra tabel A med alle poster fra tabel B, så to tabeller med henholdsvis 4 og 6 poster producerer 24 poster. Ved at bruge WHERE-klausulen kan du derefter vælge de rækker, du faktisk ønsker, fra dette kartesiske produkt. Men MySQL følger faktisk ikke igennem og laver denne enorme matrix, men semantisk er det, hvad det betyder.

En JOIN-syntaks er ANSI-standarden, der tydeligere definerer, hvordan tabeller interagerer. Ved at sætte ON klausul ved siden af ​​JOIN , gør det klart, hvad der forbinder de to tabeller.

Funktionelt vil de udføre det samme for dine to forespørgsler. Forskellen kommer ind, når du begynder at bruge en anden [OUTER] JOIN-typer.

Specifikt for MySQL har kommanotation en forskel

STRAIGHT_JOIN ligner JOIN, bortset fra at den venstre tabel altid læses før den højre tabel. Dette kan bruges til de (få) tilfælde, hvor joinoptimeringsværktøjet placerer tabellerne i den forkerte rækkefølge.

Det ville dog ikke være klogt at regne med denne forskel.



  1. SQL-snydeark:Hvad er SQL, SQL-kommandoer og SQL-injektion

  2. Tilladelse nægtet ved forsøg på at importere en CSV-fil fra PGAdmin

  3. Beregn alder i MySQL (InnoDb)

  4. 7 måder Microsoft Access kan hjælpe din virksomhed på