![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
mam problem z GROUP BY i prawidlowym posortowaniem wynikow
mam dwie tabele wspole pole to t1_id jedna odopwiada za artykul a druga za komentarze, t1_id to id artyulu i taym samy przyporzadkowanie komentarzy do konkretnego artykulu. Problem sie pojawia jak chce zrobil liste ostatnich komentarzy do danego artykulu uzywam czegos takiego
zamiast podawac mi nik i tresc ostatniego komentarza i jego autora to podaje pierwszego ![]() ![]() Ten post edytował Kinool 14.07.2004, 11:26:49 -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 0 Dołączył: 20.04.2002 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
A co było jak zmieniłeś na ASC?
t2.czas - jaki to typ pola u Ciebie? -------------------- Krzysztof Wójcik
Zend Certified Engineer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
ASC nic nie daje a typ to integer data zapisana w formie znacznika czasu unixowego
sorki ze pisze ale czy nikt nie ma zadnego pomyslu?? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Chlopie... czytales regulamin? Co tam pisze o upominaniu sie ? Ano m.in. to, ze jak nie dostajesz dlugo odpowiedzi to moze znaczyc, ze zle sformulowas pytanie lub podales np. za malo informacji. Obie te rzeczy pasuja do Twojego posta jak ulał. Nie wiem jak inni, ale ja nie mam ochoty ani czasu meczyc sie ze zrozumieniem co autor mial na mysli. To w Twoim interesie powinno byc, zeby jak najlepiej naswietlic problem.
Wiec po pierwsze.. piszesz na poczatku ze masz dwie tabele a w zapytaniu pojawiaja sie az trzy, zaprzeczasz sam sobie. Po drugie: nazywaj tabele po ludzku, a nie jakies 't1', 't2'... jak ja sie mam domyslec o co chodzi, nie dajesz mi takiej szansy nawet jakbym bardzo chcial. Po trzecie zapytanie, ktore podales ni cholery nie pasuje mi do Twojego pytania, zeby pobrac ostatnie komentarze do danego artykułu. Brakuje tam nawet ID artyklu, ktory bys chcial sprawdzic. A moze Ty chcesz pobrac wszystkie artykuly i ostatni komentarz do kazdego z nich (to juz nawet pasuje) ? -------------------- Brak czasu :/
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
nie wiem Fido czemu sie tak oburzasz! napisalem ze 2 tabele bo z 2 glownie sie korzysta 3 jesttylko po to by pobrac nazwe uzytkownika!
jesli nie brakuje ci ID artykulu to jest to w zapytaniu! (t1.id=t2.art_id) i w opisie "t1_id to id artyulu" celowo nie wsaeailem kropki ale widze ze to wielki problem tak wiec napisze raz jeszcze zeby wszyscy mogli zrozumiec! t1 - tabela z artykulami struktura: | id | temat | tresc | czas | autor_id | t2 - tabela z komentarzami struktura: | id | art_id | autor_id | komentarz | czas | wspomniana tabela 3 to tabela z uzytkwnikami (najmnije istotna) t3 - tabela z userami struktura: | id | nick | haslo | tak wygladaja tabele (potrzebne pola w zapytaniu) Cel: celam topicu jest uzyskanie odpowiedzi na pytanie: Jak powinno wygladac zapytanie aby uzyskac list (nick autora komentarza, tytul komentowanego artykulu, id komentowanego artykulu) z ostatnim komentarzem 10 artykulow. pytanie jakie zrobilem :
relacja laczaca tabele artykulow z tabela komentarzy t1.id = t2.art_id relacja laczaca tabele komentarzy i tabele userow t2.autor_id = t3.id Wynik zapytania chce pogrupowac wg. id artykulu t1.id i posortowac wg. czasu nadeslanych komentarzy ORDER BY t2.czas DESC ale cos niebardzo dziala te sortowanie jak bym chcial bo nie wyswietla ostatniego komentarza. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Trzeba bylo tak odrazu.
Problem nie jest taki prosty, bo przy grupowaniu order w zasadzie nie dziala i jest brany powiedzmy przypadkowy rekord z danej grupy i tego nie zmienisz. Przykladowe rozwiazania tego problemu masz tu: http://dev.mysql.com/doc/mysql/en/example-...-group-row.html Polecam tez poczytac komentarze do tego, podaja tam bardzo ciekawe rozwiazania. -------------------- Brak czasu :/
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 15:30 |