Die Absicht ist eine bedingungslose LEFT JOIN
, was anders ist aus einem CROSS JOIN
, dass alle Zeilen aus dem linken Tabellenausdruck zurückgegeben werden, auch wenn es keine Übereinstimmung im rechten Tabellenausdruck gibt - während ein CROSS JOIN
löscht solche Zeilen aus dem Ergebnis. Mehr über Joins im Handbuch.
Allerdings:
1=1
ist sinnlos in Postgres und allen Derivaten einschließlich Amazon Redshift. Verwenden Sie einfach true
. Dies wurde wahrscheinlich von einem anderen RDBMS übernommen, das boolean
nicht unterstützt richtig eingeben.
... LEFT JOIN (SELECT ...) ue ON true
Dann wieder LEFT JOIN
ist für diese spezielle Unterabfrage mit SELECT MIN(modified) FROM user
sinnlos rechts, weil ein SELECT
mit einer Aggregatfunktion (min()
) und kein GROUP BY
-Klausel gibt immer genau eine Zeile zurück. Dieser Fall (aber keine anderen Fälle, in denen keine Zeile gefunden werden) kann vereinfacht werden zu:
... CROSS JOIN (SELECT MIN(modified) AS first_modified FROM user) ue