Intencja jest bezwarunkowa LEFT JOIN
, który jest inny z CROSS JOIN
w tym, że zwracane są wszystkie wiersze z lewego wyrażenia tabeli, nawet jeśli nie ma dopasowania w prawym wyrażeniu tabeli - podczas gdy CROSS JOIN
usuwa takie wiersze z wyniku. Więcej o połączeniach znajdziesz w instrukcji.
Jednak:
1=1
nie ma sensu w Postgres i wszystkich pochodnych, w tym Amazon Redshift. Po prostu użyj true
. Prawdopodobnie zostało to przeniesione z innego RDBMS, który nie obsługuje boolean
wpisz poprawnie.
... LEFT JOIN (SELECT ...) ue ON true
Znowu LEFT JOIN
nie ma sensu dla tego konkretnego podzapytania z SELECT MIN(modified) FROM user
po prawej, ponieważ SELECT
z funkcją agregującą (min()
) i nie GROUP BY
klauzula zawsze zwraca dokładnie jeden wiersz. Ten przypadek (ale nie inne przypadki, w których brak wiersza można znaleźć) można uprościć do:
... CROSS JOIN (SELECT MIN(modified) AS first_modified FROM user) ue