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

I hvilken rækkefølge evalueres MySQL JOINs?

  1. BRUG (feltnavn) er en forkortelse for at sige ON table1.fieldname =table2.fieldname.

  2. SQL definerer ikke 'rækkefølgen', som JOINS udføres i, fordi det ikke er sprogets natur. En rækkefølge skal naturligvis angives i erklæringen, men en INNER JOIN kan betragtes som kommutativ:du kan angive dem i en hvilken som helst rækkefølge, og du vil få de samme resultater.

    Når det er sagt, når jeg konstruerer en SELECT ... JOIN, især en, der inkluderer LEFT JOINs, har jeg fundet ud af, at det giver mening at betragte den tredje JOIN som at slutte sig til den nye tabel med resultaterne af den første JOIN, den fjerde JOIN som at slutte sig til resultater af den anden JOIN, og så videre.

    Mere sjældent kan den angivne rækkefølge påvirke adfærden af ​​forespørgselsoptimeringsværktøjet på grund af den måde, den påvirker heuristikken på.

  3. Nej. Den måde, forespørgslen er sammensat på, kræver, at virksomheder og brugere både har et firma-id, jobs har et bruger-id og et jobbud, og brugerkonti har et bruger-id. Dog kun én af virksomhederne eller bruger har brug for et bruger-id for at JOIN fungerer.

  4. WHERE-sætningen filtrerer hele resultatet -- dvs. alle JOINed-kolonner -- ved hjælp af en kolonne fra jobtabellen.



  1. Båndbreddevenlig forespørgselsprofilering til Azure SQL Database

  2. Konverter VARCHAR2 til tal

  3. Forskellen mellem indre join og ydre join i SQL

  4. Du skal installere postgresql-server-dev-X.Y for at bygge en server-side-udvidelse eller libpq-dev for at bygge en klient-side-applikation