Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie użytkowników wraz z liczbą wykonanych zadań (różne statusy zadań)
Forum PHP.pl > Forum > Bazy danych > MySQL
El.Kurczako
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?
nevt
to mi wygląda na brak spostrzegawczości... dosłownie 4 tematy wcześniej opiany jest podobny problem: TUTAJ
powodzenia.
El.Kurczako
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.