PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Sintaxe de consulta do PostgreSQL LEFT OUTER JOIN


Você tem que usar CROSS JOIN para obter todas as combinações possíveis de name da primeira tabela com a option da segunda mesa. Então LEFT JOIN estes combinação com a segunda tabela. Algo como:
SELECT 
  t1.id,
  t1.name,
  t2.option,
  t2.value
FROM
(
  SELECT t1.id, t1.name, t2.option
  FROM table1 AS t1
  CROSS JOIN table2 AS t2
) AS t1
LEFT JOIN table2 AS t2  ON t1.id = t2.tbl1_fk
                       AND t1.option = t2.option

Demonstração do SQL Fiddle