Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trudności z zapytanie
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Potrzebuje zarobić zapytanie, który wyciągnie mi z bazy TITLE oraz VIEWS z tabeli NEWS, ale posortowane wg ilości komentarzy. Mam do tego dwie tabele: NEWS i KOMENTARZE.
z NEWS potrzebuję wyciągnąć TITLE i VIEWS
z KOMENTARZE pogrupować komentarze wg pola NEWS_ID
Chce żeby mi wyświetliło 500 newsów, w których było najwięcej komentarzy oraz ilość wyświetleń tych newsów.

Próbowałem z czymś takim ale za cholerę nie wiem jak to zrobić - nie jestem dobry w skomplikowanych zapytaniach.
  1. $result=mysql_query("SELECT id, news FROM komentarze GROUP BY news ORDER BY SUM(news) LIMIT 500");
  2. while ($row=mysql_fetch_array($result)) {
  3. $ask=mysql_query("SELECT title, views FROM news WHERE id='".$row['news']."'");
  4. $askrow=mysql_fetch_assoc($ask);
  5. echo $askrow['title'],' - ',$askrow['views'],'<br>';
  6. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bpskiba
post
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Cytat(deha21 @ 18.04.2012, 17:33:48 ) *
Potrzebuje zarobić zapytanie, który wyciągnie mi z bazy TITLE oraz VIEWS z tabeli NEWS, ale posortowane wg ilości komentarzy. Mam do tego dwie tabele: NEWS i KOMENTARZE.
z NEWS potrzebuję wyciągnąć TITLE i VIEWS
z KOMENTARZE pogrupować komentarze wg pola NEWS_ID
Chce żeby mi wyświetliło 500 newsów, w których było najwięcej komentarzy oraz ilość wyświetleń tych newsów.

Próbowałem z czymś takim ale za cholerę nie wiem jak to zrobić - nie jestem dobry w skomplikowanych zapytaniach.
  1. $result=mysql_query("SELECT id, news FROM komentarze GROUP BY news ORDER BY SUM(news) LIMIT 500");
  2. while ($row=mysql_fetch_array($result)) {
  3. $ask=mysql_query("SELECT title, views FROM news WHERE id='".$row['news']."'");
  4. $askrow=mysql_fetch_assoc($ask);
  5. echo $askrow['title'],' - ',$askrow['views'],'<br>';
  6. }


  1. SELECT count(id), news FROM komentarze GROUP BY news ORDER BY 2 DESC LIMIT 500
o ile dobrze zrozumiałem


  1. SELECT k.title,count(k.id) AS views
  2. FROM news n
  3. JOIN komentarze k ON k.news_id=n.id
  4. GROUP BY k.title
  5. ORDER BY 2 DESC
  6. LIMIT 500

czy to??

Ten post edytował bpskiba 18.04.2012, 17:38:33
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 09:10