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

INNER JOIN ON vs WHERE-klausul

INNER JOIN er ANSI-syntaks, som du skal bruge.

Det anses generelt for at være mere læseligt, især når du deltager i mange tabeller.

Den kan også nemt udskiftes med en OUTER JOIN når et behov opstår.

WHERE syntaks er mere relationel modelorienteret.

Et resultat af to tabeller JOIN ed er et kartesisk produkt af de tabeller, hvorpå der anvendes et filter, som kun udvælger de rækker, der matcher sammenføjede kolonner.

Det er nemmere at se dette med WHERE syntaks.

Med hensyn til dit eksempel, i MySQL (og i SQL generelt) er disse to forespørgsler synonymer.

Bemærk også, at MySQL også har en STRAIGHT_JOIN klausul.

Ved at bruge denne klausul kan du styre JOIN rækkefølge:hvilken tabel er scannet i den ydre løkke og hvilken der er i den indre løkke.

Du kan ikke styre dette i MySQL ved hjælp af WHERE syntaks.



  1. Brug af en if-betingelse i en indsættelse af SQL Server

  2. Sådan undgår du at bruge + i versionsnummer med SQLiteAssetHelper

  3. SQL Server Internals:Plan Caching Pt. II – Genkompilering af planer

  4. Gendan tabelstruktur fra frm- og ibd-filer