Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Zliczanie kilku rekordów naraz
lobopol
post 5.03.2010, 14:09:47
Post #1





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


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


--------------------
Go to the top of the page
+Quote Post
Pilsener
post 5.03.2010, 18:19:46
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


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.
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: 18.07.2025 - 01:02