Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 5 LEFT JOIN-ów?
piotrek24
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 22.07.2006

Ostrzeżenie: (0%)
-----


Mam tabelę "uzytkownicy" z polami:

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:

  1. SELECT a.czynnosc_1, a.czynnosc_2, a.czynnosc_3, a.czynnosc_4, a.czynnosc_5, b.uzytkownik_nazwa AS uzytkownik_nazwa_1,
  2. c.uzytkownik_nazwa AS uzytkownik_nazwa_2, d.uzytkownik_nazwa AS uzytkownik_nazwa_3, e.uzytkownik_nazwa
  3. AS uzytkownik_nazwa_4, f.uzytkownik_nazwa AS uzytkownik_nazwa_5
  4. FROM zadania a
  5. LEFT JOIN uzytkownicy b ON a.uzytkownik_id_1 = b.uzytkownik_id
  6. LEFT JOIN uzytkownicy c ON a.uzytkownik_id_2 = c.uzytkownik_id
  7. LEFT JOIN uzytkownicy d ON a.uzytkownik_id_3 = d.uzytkownik_id
  8. LEFT JOIN uzytkownicy e ON a.uzytkownik_id_4 = e.uzytkownik_id
  9. LEFT JOIN uzytkownicy f ON a.uzytkownik_id_5 = f.uzytkownik_id
  10. WHERE zadanie_id = 1
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




tyle postow o nic (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) a pytanie bylo takie proste:
Cytat
To zapytanie co jest powyżej jak najbardziej działa i w zasadzie może tak zostać jednak moje pytanie dotyczy tego czy to jest jedyne rozwiązanie? i czy nie da sie tego zrobić np. prościej?.

Odpowiedź: nie, nie da się tego zrobić prościej. Użycie tu 5 left joinow tak jak ty to zrobiles to jedyne sensowne rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit: choć przepraszam, można by się tu pokusić o widoki
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 18:31