Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] 1 rekord w JOIN?
Lwik
post 14.11.2013, 19:34:40
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 8
Dołączył: 11.05.2012

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


Hej, od pół godziny zmagam się z głupim problemem logicznym w zapytaniu mysql, a mianowicie:
mam trzy tabele:

conversation
id | topic | from_id | to_id | time
1 | Temat | 1 | 2 | time()

conversation_msg
id | conv_id | author_id | time | text
1 | 1 | 2 | time()| wiadomo
1 | 1 | 1 | time()| wiadomo

users
id | nick
1 | nick
2 | nick

Chciałbym wyjąć dane z mysql
a] conversation.id, conversation.from_id, conversation.to_id, conversation.time
b] from_id, to_id łącząc z tabelą users przez join (pobierając dwa nicki)
c] conversation.id łącząc z tabelą conversation_msg pobierając OSTATNI conversation_msg.text
a i b jest bez problemu - czyli złączenie join, z trzecim próbowałem joinem - zwraca jednak kilka rezultatów bądź nieułożonych w odpowiedniej kolejności.
Domyślam się, że rozwiązanie jest banalne, więc jakieś pomysły? :]

Ten post edytował Lwik 14.11.2013, 19:35:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mmmmmmm
post 15.11.2013, 11:32:32
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Jeśli to tylko jedno pole, to lepiej w SELECT dodać: ... (SELECT conversation_msg.text FROM conversation_msg WHERE id=conversation.id /* to tabela z "zewnątrz" */ ORDER BY data DESC LIMIT 1)
I tak zarzyna serwer. Pewnie tak samo jak JOIN z dwoma podzapytaniami.
Go to the top of the page
+Quote Post
Lwik
post 15.11.2013, 21:16:03
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 8
Dołączył: 11.05.2012

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


Nie pomyślałem o tym od kwestii optymalizacji, fakt, takie zapytanie często wywoływane może trochę obciążać system.
Wrzuciłem aktualizację ostatniej wiadomości w skróconej formie do "conversation", bo już chyba lepiej poświęcić te kilka kb dla varchar z tekstem?

Ten post edytował Lwik 15.11.2013, 21:16:24
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:48