![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Muszę wyciągnąć powiązane ze sobą dane z 3 tabeli: tematy, posty, użytkownicy. Zależy mi, aby każdy temat był zwracany tylko raz ... obecnie, zwracany jest tyle razy, ile postów w nim występuję. Testowałem różne złączenia, ale dokumentacja mówi, że JOIN dołącza jeden-do-wielu. Próbowałem również DISTINCT, ale zapytanie sie wysypywało gdy wskazywał na id tematu. Moje zapytanie:
Z góry dziękuję za każdą pomoc prowadzącą do rozwiązania problemu. Pozdrawiam -------------------- Aplikacje mobilne iPhone i iPad: http://generio.pl / http://facebook.com/GenerioPL
Portfolio: http://poslinski.net |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ps: poco dołączasz posty skoro nie chcesz ich wszystkich? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
W postach jest informacja o użytkowniku, w dodatku zależy mi tylko na ostatnim poście dla danego tematu i użytkowniku który go napisał + dacie ( która również jest w tablicy z postami, dlatego sortowanie wg. daty )
-------------------- Aplikacje mobilne iPhone i iPad: http://generio.pl / http://facebook.com/GenerioPL
Portfolio: http://poslinski.net |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat dlatego sortowanie wg. daty jakos nie widze tego sortowania.Powinienes sobie ulatwic zadanie i np. w tabeli post dodac kolumne MAIN ktora bedzie ci mowila czy to pierwszy post w temacie czy nie. Wowczas bedziesz robil selecty bez zbednego kombinowania. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Brakuje ORDER BY date na końcu.
Zapytanie wykonuje wszystko co trzeba, ale id się powtarza, to jedyna rzecz jaką trzeba wyeliminować. Ten pomysł z MAIN'em sporo kłopotów by sprawił, ponieważ, trzeba by wszystkie posty z danego tematu przy dodawania i usuwaniu ustawiać. Myślę że prostszym rozwiązaniem było by zastosowanie widoku, który by zwracał ostatnie posty z każdego tematu ( co przy joinie owocowało by dokładnie takim złączeniem o jakie mi chodzi), ale być może istnieje jakieś rozwiązanie, które nie wymaga zastosowania takiej metody. -------------------- Aplikacje mobilne iPhone i iPad: http://generio.pl / http://facebook.com/GenerioPL
Portfolio: http://poslinski.net |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat trzeba by wszystkie posty z danego tematu przy dodawania i usuwaniu ustawiać ze jak?Przy tworzeniu tematu ustawiasz tylko pierwszy post na MAIN =1 . inne posty bedą mialy domyslnie MAIN=0. Nie widze tu zadnego problemu. pozatym jakbys usyl trigerow to wogole bajka -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o wyciągnięcie najnowszego w danym momencie postu z danego tematu (nie pierwszego).
Zdaje sobie sprawę z rozwiązania korzystającego z procedur składowanych lub widoków, jednak temat dotyczy stworzenia odpowiedniego zapytania. Wykorzystywane ono będzie na stronie na której będą wyświetlane tematy (docelowo również na stronie gdzie wyświetlane są sekcje forum, zatem dojdzie jeszcze jedna tabela) ... Jakiś pomysły jak wykonać to przez zapytanie? Ten post edytował SDK 26.03.2009, 12:44:21 -------------------- Aplikacje mobilne iPhone i iPad: http://generio.pl / http://facebook.com/GenerioPL
Portfolio: http://poslinski.net |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no to jak to ma byc ostatni to dodajesz w temacie kolmne LAST_POST i po ptokach. uwierz na slowo - ulatwi ci to zycie.
![]() no ale ok:
mniej wiecej cos takiego dodalem pole date ps: nazewnictwo pol i aliasow masz po prostu "cudne" ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety to rozwiązanie nie jest skuteczne, w dodatku przy LIMIT 1 wyskakuje pod 5.1.29rc i 5.0.45 komunikat:
Cytat #1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' To zapytanie zwraca jeden, zamiast 2 wierszy ( 2 tematy są w tej sekcji ), w dodatku niezależnie od order DESC czy ASC, zwraca pierwszy post zamiast najnowszego. posts == comments ( stąd te dziwne aliasy ![]()
-------------------- Aplikacje mobilne iPhone i iPad: http://generio.pl / http://facebook.com/GenerioPL
Portfolio: http://poslinski.net |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 14:59 |