Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: COUNT oraz GROUP
Forum PHP.pl > Forum > Bazy danych > MySQL
Apo
Witam

Chciałem zrobić mechanizm podobnych newsów. Czyli jeśli jest otwarty dany news to strona znajduje podobne newsy na zasadach:
- wyszukuje newsy która są umieszczone przynajmniej w 1 kategori w ktorej znajduje się głowny news
- wyszukuje newsy które posiadają przynajmniej 1 tag umieszczony w newsie głównym

Na tej podstawie zliczam ilość wystąpień tych danych za pomocą count (sumuje ilość wystąpień tagów oraz kategori). Na końcu zapytania chciałem pogrupować wyniki według id newsów lecz kiedy to zrobie wartości count zostaną zwiększone tyle razy ile powtarza się rekord danego newsa.
Dlatego nie mogę za bardzo operować potem na tabeli (LIMIT).

Zapytanie wygląda tak:
  1. SELECT * , count(tags.nid)+count(newscategories.nid) AS wartosciowosc // wartosci z count zwiekszaja sie z grupowaniu tags.nid
  2. FROM newscategories LEFT JOIN tags ON newscategories.nid = tags.nid
  3. WHERE tags.nid != 36 AND tags.name IN ('google', 'biznes') OR newscategories.nid IN (1, 2)
  4. GROUP BY tags.id // grupowanie bo unikalnej wartosci, wtedy count sie nie dodaje samoczynnie
  5. ORDER BY wartosciowosc DESC


Jak mogę pogrupować te wartości po "tags.nid" tak aby wartosciowosc nie została automatycznie powiększana n wystąpień danego newsa?

Pozdrawiam
najtje
a mógłbym prosić o jakieś przykładowe dane z tych tabel które są w joinie i oczekiwany przez ciebie wynik ?
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.