sql >> Database >  >> RDS >> PostgreSQL

Het mengen van expliciete en impliciete joins mislukt met Er is een item voor tabel ... maar er kan niet naar worden verwezen vanuit dit deel van de query

De SQL-specificatie stelt dat expliciete joins worden uitgevoerd vóór impliciete joins. Dit is een impliciete deelname:

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

Dit is een expliciete deelname:

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

Deze codebit:

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

is een expliciete join en wordt als eerste uitgevoerd. Merk op dat op dit punt de tabel een alias heeft gekregen omdat er nog niet naar is gekeken, dus het kan nog niet worden toegevoegd. Merk op dat MySQL dit gedrag in 5.2 heeft opgelost geloof ik, en deze query zal daar ook niet meer werken.



  1. MYSQL BESTELLEN PER GEVAL Probleem

  2. Invoegen als rij niet bestaat (UPSERT) in MySQL

  3. Een weergave maken met de ORDER BY-component

  4. Het sneeuwvlokschema