SQL (ORACLE) - join dwukrotne odwołanie do tej samej tabeli

SQL (ORACLE) - join dwukrotne odwołanie do tej samej tabeli
YO
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:1
0

Cześć

Mam dwie tabele (detail i detail_dictionary) - w jednej z nich są przechowywane kody słownikowe (np. ID8, ID9) w różnych kolumnach a w drugiej wartości słownikowe - opisy (ID8, closed; ID9, open) jakie kryją się za tymi słownikami. Problem ten, że tabela do której chciałbym się odwołać przechowuje wartości słowników w tych samych kolumnach - dwie kolumny w których są słowniki do wszystkich wartości w bazie nie tylko tych dwóch.

Nie wiem jak zakodować to aby zamienić wartości słownikowe ich opisami.

Poniższe nie działa bo zwraca opisy dwa razy do tej samej tabeli. wstawienie drugiego wiersza left join nic nie daje.

Z góry dziękuje.

Kopiuj
select
  DETAIL.APPL_ID, 
  DETAIL.STATUS, 
  detail_dictionary.dict_name, 
  DETAIL.DETECTION_METHOD, 
  detail_dictionary.dict_name
  from P.DETAIL
  left outer join P.detail_dictionary on DETAIL.STATUS=detail_dictionary.dict_id
  left outer join P.detail_dictionary on DETAIL.DETECTION_METHOD=detail_dictionary.dict_id;
Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:dzień
  • Postów:2792
1

Użyj aliasów.

Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:dzień
  • Postów:2792
1
Kopiuj
select
  d.APPL_ID, 
  d.STATUS, 
  dic1.dict_name, 
  d.DETECTION_METHOD, 
  dic2..dict_name
  from P.DETAIL d
  left outer join P.detail_dictionary dic1 on d.STATUS=dic1.dict_id
  left outer join P.detail_dictionary dic2 on d.DETECTION_METHOD=dic2.dict_id;

czy jakoś tak...

edytowany 1x, ostatnio: Marcin.Miga

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.