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.
|
|
|
|
markonix Unikalne pary 16.11.2013, 23:18:52
werdan http://sqlfiddle.com/#!2/e9642/2
[SQL] pobier... 17.11.2013, 07:58:53
markonix To była moja pierwsza próba i faktycznie pokazuje ... 17.11.2013, 13:48:25
redeemer Może tak: [SQL] pobierz, plaintext SELECT IF... 17.11.2013, 14:34:22
redeemer Ok, w końcu zrozumiałem o co tak naprawdę chodzi
... 17.11.2013, 18:02:40
markonix Rozumiem, że sztuczne kolumny odnoszą się do rozwi... 17.11.2013, 20:11:11
redeemer Te dwie propozycje wydajnościowo powinny być tożsa... 18.11.2013, 13:23:06
markonix No tak, ale wspomniałeś o tymczasowych kolumnach i... 18.11.2013, 16:41:43 ![]() ![]() |
|
Aktualny czas: 9.01.2026 - 00:56 |