PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Mieszanie sprzężeń jawnych i niejawnych kończy się niepowodzeniem z Istnieje wpis dla tabeli ... ale nie można się do niego odwoływać z tej części zapytania

W specyfikacji SQL stwierdza się, że sprzężenia jawne są wykonywane przed sprzężeniami niejawnymi. To jest dołączenie niejawne:

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

To jest jawne dołączenie:

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

Ten bit kodu:

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

jest jawnym sprzężeniem i jest uruchamiany jako pierwszy. Zauważ, że w tym momencie tabela z aliasem i nie była jeszcze sprawdzana, więc nie można do niej jeszcze dołączyć. Zwróć uwagę, że MySQL naprawił to zachowanie w wersji 5.2, jak sądzę, i to zapytanie również tam nie będzie działać.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego PostgreSQL nie lubi nazw tabel WIELKIMI LITERAMI?

  2. Problem z przywracaniem bazy danych Heroku

  3. Praca w kierunku Postgres-XL 9,5

  4. Niekompatybilność Openshift i net-ssh? (2.9.3-beta1 vs 2.9.2)

  5. domyślna strefa czasowa postgres