Avsikten är en ovillkorlig LEFT JOIN
, vilket är annat från en CROSS JOIN
genom att alla rader från det vänstra tabelluttrycket returneras, även om det inte finns någon matchning i det högra tabelluttrycket - medan en CROSS JOIN
tar bort sådana rader från resultatet. Mer om sammanfogningar i manualen.
Men:
1=1
är meningslöst i Postgres och alla derivat inklusive Amazon Redshift. Använd bara true
. Detta har förmodligen överförts från ett annat RDBMS som inte stöder boolean
skriv korrekt.
... LEFT JOIN (SELECT ...) ue ON true
Sedan igen, LEFT JOIN
är meningslöst för just den här underfrågan med SELECT MIN(modified) FROM user
till höger, eftersom en SELECT
med en aggregerad funktion (min()
) och ingen GROUP BY
klausul returnerar alltid exakt en rad. Detta fall (men inte andra fall där ingen rad kan hittas) kan förenklas till:
... CROSS JOIN (SELECT MIN(modified) AS first_modified FROM user) ue