Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zliczanie z kilku tabel - pomocy!
Forum PHP.pl > Forum > Bazy danych > MySQL
pc5
Próbowałem sam dojść do rozwiązania mojego problemu, ale poległem i nie dałem rady sad.gif Proszę o pomoc.

Potrzebuję zliczyć pewne dane do wypisu listy galerii jakie mam w serwisie.
Wypis z bazy na stronie zwiera takie kolumny :
nazwa | nick_autora | ile_zdjec | ile_komentarzy

W poniższej tabeli mam tylko takie dane :

Tabela GALERIE
id_gal | nazwa | id_autora |
0 | Test | 1
1 | Inna | 1
2 | Koty | 2
...

Potrzebuję
1) Zamiast id_autora wstawić jego imię pobrane z tabeli uzytkownicy
2) Zliczyc ilosc zdjec z tbeli PLIKI dla danego id_gal
3) Zliczyc ilosc komentarzy z tabeli KOMENTARZE gdzie id_wlasciciela=id_gal

Oto pozostałe tabele

Tabela PLIKI
id_pliku | id_gal
0 | 0
1 | 0
2 | 0
3 | 1

Tabela KOMENTARZE
id_kom | id_wlascicela | tresc
0 | 0 | Kom do gal test
1 | 0 | Inny kom do gal test
2 | 2 | Kom do koty

Tabela UZYTKOWNICY
id_usera | nick |
0 | Jacek
1 | Adam
2 | Piotr

Czy da się pobrać wszystkie potrzebne dane w jednym zapytaniu? Jak ono ma wyglądać?

Wymyśliłem takie zapytanie, ale ono zlicza wszystkie elementy i nie podaje nicka autora

SELECT
GALERIE.id_gal,
GALERIE.nazwa
(SELECT COUNT(id_pliku) AS ile_zdjec FROM PLIKI),
(SELECT COUNT(id_kom) AS ile_kom FROM KOMENTARZE)

FROM
GALERIE

Z góry dziękuję za pomoc.
kefirek
  1. SELECT *,
  2. (SELECT COUNT(id_pliku) FROM PLIKI p WHERE (p.id_gal=g.id_gal)) AS pliki,
  3. (SELECT COUNT(id_kom) FROM KOMENTARZE k WHERE (k.id_wlascicela=g.id_gal)) AS komentarzy
  4. FROM GALERIE g
  5. LEFT JOIN UZYTKOWNICY u ON (g.id_autora=u.id_usera)
pc5
Cytat(kefirek @ 19.03.2009, 18:28:10 ) *
  1. SELECT *,
  2. (SELECT COUNT(id_pliku) FROM PLIKI p WHERE (p.id_gal=g.id_gal)) AS pliki,
  3. (SELECT COUNT(id_kom) FROM KOMENTARZE k WHERE (k.id_wlascicela=g.id_gal)) AS komentarzy
  4. FROM GALERIE g
  5. LEFT JOIN UZYTKOWNICY u ON (g.id_autora=u.id_usera)


Chwała Ci, cześć i uwielbienie dobry człowieku! smile.gif O to chodziło, z resztą już sobie poradzę. Dziękuje!
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.