Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Dość złożone zapytanie
Forum PHP.pl > Forum > Przedszkole
PiotrekM
Witam,
jakbym mógł skonstruować zapytanie, by sortowało mi tematy względem ostatniego postu (gdy nie ma żadnego postu, to względem id tematu) (tak jak na normalnych forach) zakładając, że mam tabele topics (id, title) i posts (id, id_topic, content)?
kombinowałem tak, ale nie do konca działa:
  1. SELECT *, b.id AS id FROM topics AS a JOIN posts AS b ON a.id=b.id_topic GROUP BY a.id ORDER BY b.id DESC
ActivePlayer
Twoje zapytanie jak nie ma postów, to nie zwróci w ogole tematu. sugeruje dodać w tabeli topics pole "data ostatniej edycji". wtedy problem z pobieraniem znika, a przy większym obciążeniu nie będzie problemów. fakt faktem jest to powielenie danych, ale mniejsze obciążenie serwera jest dużo ważniejsze niż dodatkowe 3mb w bazie\


gdybyś mimo wszystko chciał zrobić to na takiej strukturze jak masz, powinienneś:
a) dodać 'data utworzenia', w tabeli posts i tabeli topics
cool.gif zmienić JOIN na LEFT JOIN
c) w order by użyć klauzuli if http://dev.mysql.com/doc/refman/5.0/en/con...l#operator_case
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.