Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie na trzech tabelach
Forum PHP.pl > Forum > Bazy danych
kopczyk
To mój pierwszy post więc witam wszystkich serdecznie.
Przejde odrazu do problemu ktorego nie wiem z której strony mam ugryźć.
otóż w bazie mam trzy tabelki:
Cytat
tabela groups:
id

tabela albums:
id
group_id

tabela pictures:
id
album_id


group_id jest kluczem obcym z tabeli groups natomiast album_id jest kluczem z tablei album.

Jakie zapytanie wyciągnęło by z bazy informację o tym w której grupie jest najwięcej zdjęć i zwróciło id tej grupy?
Cotter
  1. SELECT group_id,count(*) AS picturesAmount
  2. FROM `albums` JOIN groups JOIN pictures ON albums.group_id=groups.id AND pictures.album_id = albums.id
  3. GROUP BY groups.id
  4. ORDER BY picturesAmount
  5. DESC LIMIT 1

Najpierw używając JOIN łączymy wszystkie tabele używając ich kluczy, następnie grupujemy dane według id grup na końcu sortujemy wyniki od największego do najmniejszego i zwracamy pierwszy wynik jako id grupy oraz liczbę obrazków w tej grupie.
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.