sql >> Database >  >> RDS >> PostgreSQL

Is de volgorde van tabellen in een join van belang, wanneer LEFT (outer) joins worden gebruikt?

Het is hetzelfde, maar het is dubbelzinnig als de hel met de impliciete CROSS JOINs. Gebruik expliciete JOINS.

Als u deelneemt aan de WHERE-clausule, dan kunnen de resultaten mogelijk verschillen omdat joins en filters door elkaar worden gehaald.

SELECT ....
  FROM apples a
       JOIN
       bananas b ON ...
       JOIN 
       oranges o ON ...
       LEFT JOIN
       kiwis k ON k.orange_id = o.id
 WHERE (filters only)

Opmerkingen:

  • INNER JOINS en CROSS JOINS zijn commutatief en associatief:volgorde doet er meestal niet toe.
  • OUTER JOINS zijn dat niet, die je hebt geïdentificeerd
  • SQL is declaratief:u vertelt de optimiser wat u wilt, niet hoe u het moet doen. Hiermee worden overwegingen voor JOIN-bestellingen verwijderd (onder voorbehoud van de vorige 2 items)


  1. Groepsgewijs maximaal

  2. Zoeken in volledige tekst gebruiken in SQL Server 2008 voor meerdere tabellen, kolommen

  3. Wat is Percona DB

  4. Ontvang de huidige lokale tijd van elk land in PL/SQL