Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Pobieranie danych z dwóch kolumn i zliczanie trzeciej.
Forum PHP.pl > Forum > Przedszkole
xbigos
Witam serdecznie mam taki problem.
Chciałbym w jednym zapytaniu pobrać nazwę kategorii (po id) i wszystkie news-y.
A wieć robie sobie proste zapytanie.

  1. SELECT
  2. blog_kategorie.nazwa_kategorii,
  3. blog_wpisy.nazwa_wpisu,
  4. blog_wpisy.tresc_wpisu,
  5. blog_wpisy.data_dodania
  6. FROM blog_kategorie, blog_wpisy
  7. WHERE blog_wpisy.id_kategoria = blog_kategoria.id
  8. ORDER BY blog_wpisy.data_dodania DESC

Wszystko ładnie pięknie tylko co zrobić żeby w tym samym zapytaniu policzyć jeszcze ile jest komentarzy dla danego wpisu.

Struktura tabel
blog_wpisy
-- id
-- nazwa_wpisu
-- tresc_wpisu
-- id_kategoria
blog_kategorie
-- id
-- nazwa_kategorii
blog_komenatrze
-- id
-- tresc_komentarza
-- id_wpisu

Dla uproszczenia wyrzuciłem niepotrzebne pola.
Jak próbowałem wychodziły niezłe twory z morskiej odchłani.
Proszę o pomoc.

Daję na przedszkole bo pewnie rozwiazanie jest banalne.

Pozdrawiam
xbigos
kavka
Musiałbyś pogrupować po id_wpisu i funkcją count() sprawdzić ile jest id_komentarzy... aczkolwiek w tym przypadku, gdzie wyciągasz sporo innych danych (blog_kategorie.nazwa_kategorii, blog_wpisy.nazwa_wpisu, blog_wpisy.tresc_wpisu, blog_wpisy.data_dodania) nie wiem czy to będzie dobry pomysł. Wszystkie te kolumny będą musiały być objęte klauzulą 'group by' i nie wiem czy to nie spłaszczy wyników (bo zasada jest taka, że przy użyciu 'group by' po 'select' może znajdować się tylko to, co było objęte 'group by' i jakieś funkcje agregujące).

To odpowiedź pisana na szybko.
xbigos
Z tym zapytaniem chyba sobie sam nie poradzę.
Wykonałbym w pętli while przy wyświetlaniu dla każdego wpisu SQL_CALC_FOUND_ROWS ale szukam bardziej wyrafinowanego zapytania. A poza tym korzystam z cachowania i nie za bardzo mi się to razem chce sprzęgnąć.

Chciałbym dodać, że na stronie będzie dużo treści i dlatego cachuje zapytania.
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.