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

Смесването на изрично и неявно свързване е неуспешно с Има запис за таблица ... но не може да бъде препратен от тази част на заявката

В спецификацията на SQL се посочва, че явните обединявания се извършват преди неявните. Това е имплицитно присъединяване:

FROM table1 t1, table2 t2 WHERE t1.id=t2.t1id

Това е изрично присъединяване:

FROM table1 t1 JOIN table2 t2 ON (t1.id=t2.t1id)

Този кодов бит:

categories c 
     LEFT JOIN photos p 
        ON p.referencekey = i.key 

е изрично присъединяване и се изпълнява първи. Имайте предвид, че в този момент таблицата е с псевдоним, тъй като все още не е разгледана, така че все още не може да бъде присъединена. Имайте предвид, че MySQL поправи това поведение в 5.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. Как можете да свържете активните потребители към PostgreSQL база данни чрез SQL?

  2. колоната за изтриване не съществува

  3. Как да създадете потребител/база данни в скрипт за Docker Postgres

  4. Amazon RDS за PostgreSQL алтернативи - ClusterControl за PostgreSQL

  5. Механизми за физическа репликация в PostgreSQL