![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabelę z polami "tag" oraz "produkt". Może się zdarzyć że produkty maja takie same tagi, a więc zawartość pola tag często sie powtarza.
Chciałbym pobrać 5 najpopularniejszych tagów, ale nie chcę pisać 5 osobnych zapytan tylko optymalnie zmiescic sie w jednym. Na razie mam coś takiego:
Jak najlepiej dodać do tego pobieranie ilości wystąpień tagu? No i oczywiście jak ułożyć WHERE żeby pobrało 5 najpopularniejszych? Ten post edytował Haczyk67 5.12.2009, 15:55:35 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Użycie
Produkt (id, nazwa) Tag (id, nazwa) ProduktTag (id_produkt, id_tag) <--- tu znajduje sie troche duplikatów strasznie wsyzstko komplikuje i powoduje że będę musiał 1) pobrać wszystkie tagi (+distinct) 2) pętlą wykonać x zapytan (count(tag)) 3) porownac wszystkie tagi 4) pobrac 5 najpoularniejszych Nie mogę użyć tego co podałeś SELECT tag, COUNT(tag) AS tag_count FROM tbl_name GROUP BY tag ORDER BY tag_count DESC LIMIT 5; Prosze o rozwiązanie jak pobrać 5 tagów bo już przebudowałem bazę tak jak radziłeś i nie wiem jak to rozwikłać mimo paru dni staran. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 22:21 |