sql >> Databasteknik >  >> RDS >> Mysql

INNER JOIN ON vs WHERE-klausul

INNER JOIN är ANSI-syntax som du bör använda.

Det anses generellt vara mer läsbart, speciellt när du går med i många tabeller.

Den kan också enkelt ersättas med en OUTER JOIN närhelst ett behov uppstår.

WHERE syntaxen är mer relationell modellorienterad.

Ett resultat av två tabeller JOIN ed är en kartesisk produkt av tabellerna som ett filter tillämpas på som endast väljer de rader med sammanfogade kolumner som matchar.

Det är lättare att se detta med WHERE syntax.

När det gäller ditt exempel, i MySQL (och i SQL i allmänhet) är dessa två frågor synonymer.

Observera också att MySQL också har en STRAIGHT_JOIN klausul.

Genom att använda den här klausulen kan du styra JOIN ordning:vilken tabell som skannas i den yttre slingan och vilken som finns i den inre slingan.

Du kan inte styra detta i MySQL med WHERE syntax.



  1. Hur man grupperar efter år i T-SQL

  2. Skapa och ta bort en PostgreSQL-databas på Ubuntu 16.04

  3. Har problem med att matcha rader i databasen med PDO

  4. Databasanslutning eller autentiseringsfel med Movable Type