PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Gabungan dalam &Gabungan Luar; apakah urutan tabel dari yang penting?

Saya yakin Anda dapat menganggap ini sebagai masalah prioritas operator.

Saat Anda menulis ini:

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   

Saya pikir itu ditafsirkan oleh parser seperti ini:

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
)

Jika demikian, maka yang paling dalam bergabung dengan "grp" tidak terikat.

Saat Anda membalikkan baris dengan "grup" dan "insrel", gabungan terdalam berlaku untuk "grup" dan "ownrel", jadi itu berfungsi.

Mungkin ini akan berhasil juga:

    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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Tan() Bekerja di PostgreSQL

  2. PostgreSQL DISTINCT ON dengan ORDER BY yang berbeda

  3. Bagaimana Asin() Bekerja di PostgreSQL

  4. Bagaimana cara mengganti database di postgres?

  5. Bagaimana mengevaluasi ekspresi dalam pernyataan pilih di Postgres