Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Zliczanie kilku rekordów naraz
Forum PHP.pl > Forum > Przedszkole
lobopol
tabela page ma taką strukturę:
-id (PK)
-name
-position
-section_id (FK)
-url

tabela section:
-id (PK)
-name
-position
-site_id (FK)

tabela site:
-id (PK)
-name

Chciałbym jednym zapytaniem (albo jak najmniejszą ilością) liczbę wszystkich podstronstron (page) przypisanych do sekcji znajdujących się na stronie pierwszej (site)

Czyli zakładając, że do strony pierwszej jest przypisane 3 sekcje:
-sekcja 1
-sekcja 2
-sekcja 3

i sekcje mają do siebie przypisane po kilka podstron dla przykładu:
-sekcja 1 ma 4
-sekcja 2 ma 10
-sekcja 3 ma 12

Uzyskać wynik w formie:
section_id = 1 count(id) =4
section_id = 2 count(id) =10
section_id = 3 count(id) =12
Pilsener
Najpierw musisz przypisać sekcje i podstrony używając JOIN:
  1. SELECT * FROM site JOIN section ON site.id=section.site_id
- podobnie dołączysz do dołączonych sekcji podstrony, w zapytaniu będą dwa JOINy - powinieneś zobaczyć jedną dużą tabelę ze wszystkimi podstronami.

Potem pozostaje dodać grupowanie:
  1. SELECT * FROM tabela GROUP BY id_sekcji


I zobaczyć, czy prawidłowo grupuje rekordy wg sekcji.

Na końcu użyć count by policzyć liczbę rekordów w każdej 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.