Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Za duże zapytanie
eska
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 24.07.2005

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


Witam,

Mam dość duży problem ze skonstruowaniem pewnego zapytania.

Mam dwie tabele:

"produkt"
- produktId
- nazwa
- ...

oraz "komentarz"
- komentarzId
- produktId
- ...
- data

Potrzebuję wybrać 100 ostatnich komentarzy do produktów, pogrupowanych po produktId posortowanych malejąco wg daty ostatniego komentarza.
Czyli jeśli ktoś doda komentarz do danego produktu wędruje on na pierwszą pozycję, a obok pokazuje datę ostatniego komentarza.

Wynikiem ma być mniej więcej coś takiego:
Lp. | nazwa | ostatni komentarz
1. | Produkt nr 1 | 13.04.2009 13:43
2. | Produkt nr 2 | 13.04.2009 11:01
3. | Produkt nr 3 | 12.04.2009 21:12

Nie byłoby to może dużym problemem, gdyby nie rozmiar obu tabel,które zawierają po kilkadziesiąt tysięcy rekordów.

Próbowałem coś takiego:

  1. SELECT produkt.produktId,
  2. produkt.nazwa,
  3. (SELECT dubel.DATA FROM komentarz AS dubel WHERE produkt.produktId = dubel.produktId ORDER BY dubel.DATA DESC LIMIT 1 ) AS ostatniKomentarz
  4. FROM produkt LEFT JOIN komentarz ON produkt.produktId = komentarz.produktId
  5. GROUP BY produkt.produktId
  6. ORDER BY ostatniKomentarz DESC LIMIT 0, 30


Nie wiem czy to jest wina błędnego zapytania, czy wielkości tabel, ale po wywołaniu takiego zapytania, zawiesza mi się przeglądarka, a czasem nawet komp.

Z góry wielkie dzięki za pomoc,
pozdrawiam

Ten post edytował eska 15.04.2009, 15:55:47
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: 7.10.2025 - 04:05