Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobranie użytkowników wraz z liczbą wykonanych zadań (różne statusy zadań)
El.Kurczako
post 9.04.2008, 12:40:59
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 9.02.2004

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


Witam

Mam tabelę użytkowników [uzytkownicy]: id, imie, nazwisko, itd
Tabelę zadań [zadania]: id, id_uzytkownika, nazwa, status

Zadania przyjmują statusy od 0-4.

Chcę otrzymać wynik o następującym układzie (kolumny zwróconej tabeli): id (uzytkownika), imie, nazwisko, liczba wykonywanych zadan ze statusem 0, liczba... statusem 1, liczba...2, liczba...3, liczba...4

Przykładowo, dla użytkownika o id = 1, są zapisane w bazie zadania:
id | id_uzytkownika | nazwa | status
--------------------------------------------
1 | 1 | zadanie 1 | 0
2 | 1 | zadanie 2 | 1
3 | 1 | zadanie 3 | 1
4 | 1 | zadanie 4 | 2
5 | 1 | zadanie 5 | 4

Zatem wynik, jaki chciałbym otrzymać to: 1 | imie | nazwisko | 1 | 2 | 1 | 0 | 1
Oczywiście chcę pobrać wszystkich użytkowników jakich mam w bazie, nie tylko jednego.

Czy ktoś wie, jak powinno wyglądać zapytanie SQL?

Ten post edytował El.Kurczako 9.04.2008, 12:41:54
Go to the top of the page
+Quote Post
nevt
post 9.04.2008, 13:16:58
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


to mi wygląda na brak spostrzegawczości... dosłownie 4 tematy wcześniej opiany jest podobny problem: TUTAJ
powodzenia.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
El.Kurczako
post 9.04.2008, 13:55:54
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 9.02.2004

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


Dzięki, i faktycznie, tam jest rozwiązanie.

A oto jak powinien wyglądać kod w moim przypadku:
  1. SELECT u.id, u.imie, u.nazwisko,
  2. SUM(IF(z.STATUS=0, 1, 0)) AS status0,
  3. SUM(IF(z.STATUS=1, 1, 0)) AS status1,
  4. SUM(IF(z.STATUS=2, 1, 0)) AS status2,
  5. SUM(IF(z.STATUS=3, 1, 0)) AS status3,
  6. SUM(IF(z.STATUS=4, 1, 0)) AS status4
  7. FROM uzytkownicy u LEFT JOIN zadania z ON z.id_uzytkownika = u.id
  8. GROUP BY u.id
  9. ORDER BY u.nazwisko ASC
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:58