sql >> Databasteknik >  >> RDS >> PostgreSQL

Inre sammanfogning &yttre sammanfogning; är ordningen på tabellerna i från viktig?

Jag tror att du kan se detta som en fråga om operatörsföreträde.

När du skriver detta:

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   

Jag tror att det tolkas av parsern så här:

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
)

Om så är fallet, är "grp" i den innersta sammanfogningen obunden.

När man vänder på linjerna med "grupper" och "insrel" gäller den innersta sammanfogningen för "grupper" och "ownrel", så det fungerar.

Förmodligen skulle detta också fungera:

    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. Hur påverkar NULL-värden prestanda i en databassökning?

  2. Introduktion till Storage Spaces Direct för SQL Server

  3. Hur man beräknar ett absolut värde i SQL

  4. Hur man får den aktuella tiden (utan tidszon) i PostgreSQL