Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql]Problem ze złożonym zapytaniem
oomaster
post
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Witam,

Mam mały problem z zapytaniem:

  1. SELECT webhot_forum_post.autor, webhot_forum_post.DATA, webhot_forum_kat.nazwa, webhot_forum_kat.opis,
  2. webhot_forum_kat.id, COUNT(webhot_forum_post.id) AS ilepost FROM webhot_forum_kat LEFT JOIN webhot_forum_post ON kat=webhot_forum_kat.id WHERE webhot_forum_kat.STATUS=1 GROUP BY kat ORDER BY webhot_forum_kat.DATA DESC


Wszystko dobrze pobiera czyli: nazwę forum, ilość postów i ostatni post. Tylko jest jeden problem zamiast pokazywać ostatni post pokazuje pierwszy post. Próbowałem zrobić ORDER BY webhot_forum_kat.data DESC ale wtedy wszystko wywara według daty nazwę, ilośc postów itd.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
specialplan
post
Post #2





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


Rzeczywiscie zlozone (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Zastanawia mnie cos...

  1. ON kat=webhot_forum_kat.id


Co to jest kat?
Go to the top of the page
+Quote Post
oomaster
post
Post #3





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Otóż kat pochodzi z tabeli webhot_forum_post i okresla ID z webhot_forum_kat czyli do której kategorii post należy.
Go to the top of the page
+Quote Post
specialplan
post
Post #4





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


Nie pracuje na mySQL (dawne czasy), ale z tego co pamietam zawsze odwolywalem sie do konkretnych tabel w JOINach... LEFT JOIN zawsze wyrzuci Ci duplikaty przy probie sortowania - trzeba uzyc GROUP CONCAT na kolumny, ktore zwracaja duplikaty (nie wiem ktore to w Twoim przypadku, rozkmin sam i podmien)

  1. SELECT webhot_forum_post.autor, webhot_forum_post.DATA, webhot_forum_kat.nazwa, webhot_forum_kat.opis,
  2. webhot_forum_kat.id, COUNT(webhot_forum_post.id) AS ilepost, GROUP_CONCAT(webhot_forum_kat.nazwa SEPARATOR ',') AS nazwy FROM webhot_forum_kat LEFT JOIN webhot_forum_post ON webhot_forum_post.kat=webhot_forum_kat.id WHERE webhot_forum_kat.STATUS=1 GROUP BY webhot_forum_post.kat ORDER BY webhot_forum_kat.DATA DESC


Tak na zywca pisze, wiec moze nie byc do konca poprawnie, wiec pokombinuj z tym GROUP CONCAT:)

[edit]
Nie jestem pewny, ale moze tez byc tak, ze GROUP BY powinno byc tozsame z ORDER BY - ale to tak gdybam sobie. Pracuje na ORM glownie i zapytan do bazy nie wysylam prawie wcale:) Mam nadzieje, ze choc troche pomoglem.

Ten post edytował specialplan 7.03.2008, 10:41:16
Go to the top of the page
+Quote Post
Sabistik
post
Post #5


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Tytuł tematu nie spełnia wymagań regulaminu działu przedszkole. Zamykam. Prześlij poprawną formę do moderatora to otworzy.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 15:51