sql >> Base de Datos >  >> RDS >> PostgreSQL

La mezcla de uniones explícitas e implícitas falla con Hay una entrada para la tabla... pero no se puede hacer referencia a ella desde esta parte de la consulta

La especificación de SQL establece que las uniones explícitas se realizan antes que las uniones implícitas. Esta es una unión implícita:

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

Esta es una unión explícita:

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

Este bit de código:

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

es una combinación explícita y se ejecuta primero. Tenga en cuenta que, en este punto, la tabla con alias como i aún no se ha visto, por lo que aún no se puede unir. Tenga en cuenta que MySQL solucionó este comportamiento en 5.2, creo, y esta consulta tampoco funcionará allí.