![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Bardzo prosty problem.
Mamy tabelę z wiadomościami - id odbiorcy i id wysyłającego. Chcę stworzyć listę konwersacji czyli po jednej wiadomości z każdej konwersacji. 1 | 2 1 | 2 1 | 3 3 | 1 2 | 1 Wynik oczekiwany dla useraID: 1 - po jednej, ostatniej wiadomości z każdej rozmowy. 2|1 1|3 Niby proste ale wszystkie moje wariacje SELECTa zwracają ładnie po jednej wiadomości ale dla rozmów gdzie była odpowiedź zwraca 2 wiersze 1|2 i 2|1 traktując to jako osobne rozmowy. Jedna z prób:
Jak wytłumaczyć bazie że 1|2 to dla mnie to samo co 2|1 i nie chcę aby się powtarzało? Inna próba z takim samym rezultatem:
Ten post edytował markonix 16.11.2013, 23:21:45 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
No właśnie zanim zeedytowałeś zacząłem przerabiać Twoją pierwszą propozycję, która była w porządku ale używała tego dziadowskiego GROUP BY, którego nie da się posortować przed grupowaniem.
Co do drugiej propozycji już na wstępie widzę problem, że nie widzi rozmowy o id 7 - "nowszej" od tej o ID 6. Tak więc druga Twoja propozycja ma chyba ten sam problem co moje pierwsze próby. Druga pomysłowa, nie wpadłbym na użycie CONCAT (IMG:style_emoticons/default/smile.gif) Problem tylko z sortowaniem tak więc nie ma innej opcji jak sub zapytanie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 14:38 |