uzytkownik_id
uzytkownik_nazwa
oraz tabelę "zadania" z polami
zadanie_id
czynnosc_1
uzytkownik_id_1
czynnosc_2
uzytkownik_id_2
czynnosc_3
uzytkownik_id_3
czynnosc_4
uzytkownik_id_4
czynnosc_5
uzytkownik_id_5
Oczywiście poszczególne czynności mogą wykonywać ci sami bądź różni użytkownicy.
I teraz chcę wyświetlić 1 wiersz z tabeli "zadania" przydzielając każdemu numerowi id użytkownika odpowiednią mu nazwę z tabeli "uzytkownicy". Czy jedynym i najprostszym rozwiązaniem tego problemu jest użycie aż (a może tylko?) 5 złączeń zewnętrznych LEFT JOIN ?
Czyli:
SELECT a.czynnosc_1, a.czynnosc_2, a.czynnosc_3, a.czynnosc_4, a.czynnosc_5, b.uzytkownik_nazwa AS uzytkownik_nazwa_1, c.uzytkownik_nazwa AS uzytkownik_nazwa_2, d.uzytkownik_nazwa AS uzytkownik_nazwa_3, e.uzytkownik_nazwa AS uzytkownik_nazwa_4, f.uzytkownik_nazwa AS uzytkownik_nazwa_5 FROM zadania a LEFT JOIN uzytkownicy b ON a.uzytkownik_id_1 = b.uzytkownik_id LEFT JOIN uzytkownicy c ON a.uzytkownik_id_2 = c.uzytkownik_id LEFT JOIN uzytkownicy d ON a.uzytkownik_id_3 = d.uzytkownik_id LEFT JOIN uzytkownicy e ON a.uzytkownik_id_4 = e.uzytkownik_id LEFT JOIN uzytkownicy f ON a.uzytkownik_id_5 = f.uzytkownik_id WHERE zadanie_id = 1