Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie według liczby komentarzy
Forum PHP.pl > Forum > Bazy danych > MySQL
kiniaz6
Witam.

Mam problem ze skonstruowaniem odpowiedniego zapytania.

Posiadam tabele w której przechowywane są komentarze takiej struktury:
nazwa: komentarze
pola: id / grupa / tekst_id / komentarz / autor / data / publiczny

i przykładowe dane:
1 / 'moda' / 1 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1
2 / 'moda' / 2 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1
3 / 'uroda' / 2 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 0
4 / 'moda' / 1 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1
5 / 'moda' / 2 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1
6 / 'moda' / 2 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 0
7 / 'moda' / 1 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1
8 / 'moda' / 3 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1
9 / 'moda' / 3 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1
10 / 'moda' / 2 / 'tresc' / 'autor' / 2010-03-07 10:10:10 / 1

oraz tabele w której zapisywane są artykuły, które można przypisać do dwóch
sekcji "Moda", "Uroda".
nazwa: artykuly
id / tresc / autor / data / publiczny

przykładowe dane:
1 / 'tresc' / 'autor' / 2010-03-10:10:10 / 1
2 / 'tresc' / 'autor' / 2010-03-10:10:10 / 1
3 / 'tresc' / 'autor' / 2010-03-10:10:10 / 1

Problem:
Chciałbym wyświetlić liste wszystkich artykułów które przypisane są do
sekcji "Uroda" i posortować je według liczby dodanych komentarzy.

Moje obecne zapytanie wygląda tak:

  1. SELECT COUNT(kom.tekst_id), art.id, art.komentarz, art.DATA, art.autor FROM
  2. artykuly AS art
  3. LEFT JOIN komentarze AS kom ON art.id = kom.tekst_id AND kom.grupa = 'uroda'
  4. AND kom.publiczny = '1'
  5. GROUP BY art.id ORDER BY COUNT(kom.tekst_id) DESC LIMIT 10


niestety nie sortuje poprawnie - dlatego proszę Was o wskazanie błędu który
popełniłem. Nigdy wcześniej nie pisałem tego typu zapytań, a powyższe
zapytanie napisałem opierając się na "wiedzy" z internetu ;-)

Z góry dzięki za pomoc. Pozdrawiam
thek
Na szybko bez pisania. masz byka, gdyż masz AND zamiast WHERE w 3 linii przed kom.uroda smile.gif Po poprawce powinno już działać.
kiniaz6
Błędnie przepisałem zapytanie... poprawiam:
  1. SELECT COUNT(kom.tekst_id), art.id, art.komentarz, art.DATA, art.autor FROM artykuly AS art
  2. LEFT JOIN komentarze AS kom ON art.id = kom.tekst_id AND kom.grupa = 'uroda' AND kom.publiczny = '1'
  3. WHERE art.publiczny = '1' GROUP BY art.id ORDER BY COUNT(kom.tekst_id) DESC LIMIT 10


Zapytanie dalej nie działa tak, jak bym chciał :/ Pomocy smile.gif
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.