PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Има ли значение редът на таблиците в обединяване, когато се използват LEFT (външни) присъединявания?

Същото е, но е двусмислено като по дяволите с неявното Кръстосани присъединявания. Използвайте изрични JOINS.

Ако се присъединявате към клаузата WHERE, тогава резултатите може да се различават, защото съединенията и филтрите са смесени.

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)

Бележки:

  • INNER JOINS и CROSS JOINS са комутативни и асоциативни:редът обикновено няма значение.
  • OUTER JOINS не са, което идентифицирахте
  • SQL е декларативен:казвате на оптимизатора какво искате, а не как да го направи. Това премахва съображенията за JOIN поръчка (в зависимост от предишните 2 артикула)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фиксиране на дупки/пропуски в числата, генерирани от последователността на Postgres

  2. UUID или SEQUENCE за първичен ключ?

  3. Как да направя големи неблокиращи актуализации в PostgreSQL?

  4. Какво е новото в PostgreSQL 13?

  5. PostgreSQL ОПИСАТЕ ТАБЛИЦА