Comando LATERAL em PostgreSQL

Qual a finalidade do comando LATERAL nos comandos sql do PostgreSQL?
Já vi comandos como “LEFT JOIN LATERAL” e “INNER JOIN LATERAL”, mas não encontrei a finalidade desse comando.

Opa

Interessante.

Veja

Através deste recurso, um item da cláusula FROM pode referenciar outro que esteja à sua esquerda, isto é, colunas de tabelas já listadas na cláusula FROM podem ser diretamente referenciadas.
Adicionalmente, é possível fazer lateral joins utilizando o resultado de funções executadas na cláusula FROM como tabelas. (https://postgresqlbr.blogspot.com.br/2013/09/nada-temer-com-lateral-joins-no.html)

Em suma, ao invés de utilizar referência de campos de tabelas diferentes no WHERE o mesmo é feito dentro do FROM.

Sua principal vantagem é facilidade de leitura de forma que o resultado seja o mesmo de quando se utilizava declarações no WHERE.

Algo que não pode ser precisado é melhor ou pior desempenho por utilizar LATERAL JOIN. (Pelo menos não encontrei algo sobre).

1 curtida

Obrigado pela resposta, me ajudou muito! :smile: