PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tham gia bên trong &tham gia bên ngoài; thứ tự của các bảng trong từ có quan trọng không?

Tôi tin rằng bạn có thể coi đây là vấn đề về ưu tiên của toán tử.

Khi bạn viết điều này:

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   

Tôi nghĩ nó được trình phân tích cú pháp diễn giải như thế này:

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
)

Nếu vậy, thì ở trong cùng, phép nối "grp" không bị ràng buộc.

Khi bạn đảo ngược các dòng với "groups" và "insrel", phép nối trong cùng sẽ áp dụng cho "groups" và "ownrel", vì vậy nó hoạt động.

Có lẽ điều này cũng sẽ hoạt động:

    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. Cân bằng tải PostgreSQL trong đám mây trở nên dễ dàng

  2. Tôi có thể yêu cầu Postgresql bỏ qua lỗi trong giao dịch không

  3. Dữ liệu lớn với PostgreSQL và Apache Spark

  4. postgresql - sql - số giá trị `true`

  5. PostgreSQL:Cấp tất cả các quyền cho người dùng trên cơ sở dữ liệu PostgreSQL