Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Executando a junção interna para várias colunas na mesma tabela


Este parece ser o caminho a seguir:
SELECT
  A.answer_id
  ,C1.color_name AS favorite_color_name
  ,C2.color_name AS least_favorite_color_name
  ,C3.color_name AS color_im_allergic_to_name
FROM tbAnswers AS A
INNER JOIN tbColors AS C1
  ON A.favorite_color = C1.color_code
INNER JOIN tbColors AS C2
  ON A.least_favorite_color = C2.color_code
INNER JOIN tbColors AS C3
  ON A.color_im_allergic_to = C3.color_code

Em vez de "estúpida", eu arrisco que essa é uma consulta bastante padrão. Isso também pressupõe que todas as colunas terão um valor válido. Caso contrário, substitua todos os INNER JOINs por LEFT JOINs