sql >> Databasteknik >  >> RDS >> Mysql

I vilken ordning utvärderas MySQL JOINs?

  1. ANVÄNDA (fältnamn) är ett förkortat sätt att säga PÅ tabell1.fältnamn =tabell2.fältnamn.

  2. SQL definierar inte "ordningen" i vilken JOINS görs eftersom det inte är språkets natur. Uppenbarligen måste en ordning anges i uttalandet, men en INNER JOIN kan betraktas som kommutativ:du kan lista dem i valfri ordning och du kommer att få samma resultat.

    Som sagt, när jag konstruerar en SELECT ... JOIN, särskilt en som inkluderar LEFT JOINs, har jag tyckt att det är vettigt att betrakta den tredje JOIN som att gå med i den nya tabellen till resultaten av den första JOIN, den fjärde JOIN som att gå med i resultat av den andra JOIN, och så vidare.

    Mer sällan kan den angivna ordningen påverka frågeoptimerarens beteende, på grund av hur den påverkar heuristiken.

  3. Nej. Det sätt som frågan är sammansatt kräver att företag och användare både har ett företags-ID, jobb har ett användar-id och ett jobbbud och användarkonton har ett användar-id. Men bara ett av företagen eller användaren behöver ett användar-id för att JOIN ska fungera.

  4. WHERE-satsen filtrerar hela resultatet -- d.v.s. alla JOINed-kolumner -- med hjälp av en kolumn som tillhandahålls av jobbtabellen.



  1. Hur optimerar man denna komplicerade EAV MYSQL-fråga?

  2. oratop

  3. Använda JDeveloper med MySQL Database och Oracle Database på AWS RDS, del 3

  4. APPEND_ONLY_STORAGE_INSERT_POINT-spärren