Tipos de JOINs em SQL
FULL OUTER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
INNER JOIN
CROSS JOIN
NATURAL ... JOIN
SELF ... JOIN
O SELF JOIN não existe como um comando, mas existe como um conceito.
Ele significa basicamente fazer um JOIN de uma tabela com ela mesma
...FROM batata AS b1JOIN batata AS b2 ON b1.origem_batata = b2.origem_batata...
... JOIN LATERAL
O LATERAL JOIN não é exatamente um JOIN, mas uma forma diferente e eficiente de fazer certas subqueries.
Referências
CROSS JOIN no PostgreSQL
https://www.postgresqltutorial.com/postgresql-cross-join/
INNER JOIN no PostgreSQL
https://www.postgresqltutorial.com/postgresql-inner-join/
LEFT OUTER JOIN no PostgreSQL
https://www.postgresqltutorial.com/postgresql-left-join/
RIGHT OUTER JOIN no PostgreSQL
https://www.postgresqltutorial.com/postgresql-right-join/
FULL OUTER JOIN
https://www.postgresqltutorial.com/postgresql-full-outer-join/
SELF ... JOIN no PostgreSQL
https://www.postgresqltutorial.com/postgresql-self-join/
NATURAL ... JOIN
https://www.postgresqltutorial.com/postgresql-natural-join/
... JOIN LATERAL
https://heap.io/blog/postgresqls-powerful-new-join-type-lateral
Diferençad entre LATERAL e SUBQUERY
https://stackoverflow.com/questions/28550679/what-is-the-difference-between-lateral-join-and-a-subquery-in-postgresql