sql >> Database teknologi >  >> RDS >> PostgreSQL

Indre sammenføjning &ydre sammenføjning; er rækkefølgen af ​​borde i fra vigtig?

Jeg tror, ​​at du kan tænke på dette som et spørgsmål om operatørprioritet.

Når du skriver dette:

FROM groups grp,
     insrel archiverel  
LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.dnumber   
LEFT OUTER JOIN tags tags ON tags.number = ownrel.snumber   

Jeg tror, ​​det tolkes af parseren sådan her:

FROM groups grp,
(
  (
     insrel archiverel  
     LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.dnumber   
  )
LEFT OUTER JOIN tags tags ON tags.number = ownrel.snumber
)

Hvis ja, så er "grp" i den inderste sammenføjning ubundet.

Når du vender linjerne med "grupper" og "insrel", gælder den inderste join for "grupper" og "ownrel", så det virker.

Dette ville sandsynligvis også fungere:

    FROM groups grp
         JOIN insrel archiverel  ON archiverel.dnumber = grp.number
    LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.dnumber   
    LEFT OUTER JOIN tags tags ON tags.number = ownrel.snumber 
WHERE archiverel.snumber = 11128188


  1. Hvordan kan jeg tælle antallet af ord i en streng i Oracle?

  2. Sammenføjning af tre borde ved hjælp af MySQL

  3. Udskrivning til skærm i .sql-fil postgres

  4. Hent database eller enhver anden fil fra det interne lager ved hjælp af run-as