Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Durchführen einer inneren Verknüpfung für mehrere Spalten in derselben Tabelle

Dies scheint der richtige Weg zu sein:

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

Anstatt "dumm" zu sein, würde ich wagen, dass dies eine ziemlich Standardabfrage ist. Dies setzt auch voraus, dass alle Spalten einen gültigen Wert haben. Ersetzen Sie andernfalls alle INNER JOINs durch LEFT JOINs