Pomóżcie skonstruować zapytanie do bazy danych

1

Cześć

Mamy ID usera z sesji czyli nasze, nazwijmy je $session_id.
Mamy ID usera, z którym czatowaliśmy. Nazwijmy go $user_id.

Mamy tabelę MySQL o następującej strukturze ( nieistotne kolumny pominąłem ).

message_id INT
sender_id INT
receider_id INT
message_content TEXT
message_date DATETIME

Przykładowe dane są następujące.

1,6,4,asdasdasd,data
1,4,6,assad65sad,data

Problem jest następujący.
Jak przy pomocy jednego zapytania pobrać wiadomości, które otrzymaliśmy i które wysłaliśmy aby uzyskać następnie tablicę wiadomości w formie czatu, tak jak na fb.

Nie problemem jest to rozwalić na dwa zapytania typu:

SELECT * FROM messages WHERE sender_id = '".$session_id."' AND receiver_id = '".$user_id."'
SELECT * FROM messages WHERE sender_id = '".$user_id."' AND receiver_id = '".$session_id."'.

Jak to zrobić jednym zapytaniem ? Jeśli się nie da to jak to wszystko skleić w tablicę asocjacyjną aby wpisy w niej były posegregowane według daty wysłania? Bo również nie jest problemem z 1 zapytania i z 2 zapytania wygenerować tablicę i wykonać array_merge(), tylko że najpierw wpuści wszystkie wpisy zapytania 1 a potem zapytania 2 :(

Ten problem mnie niestety przerasta.

dodanie znaczników <code> i <code class="mysql"> - @furious programming

0

Może union selectem dobrze myślę, ę ?
EDIT spróbuj:

SELECT * FROM messages WHERE sender_id = '".$session_id."' AND receiver_id = '".$user_id."' UNION SELECT * FROM messages WHERE sender_id = '".$user_id."' AND receiver_id = '".$session_id."' ORDER BY DATETIME
1

@MoorfoxD: UNION niewiele tu zmieni, dalej masz to samo, tyle ze druga część jest posortowana
@Kisialala: spróbuj tak:

SELECT * FROM messages WHERE sender_id = '".$session_id."' AND receiver_id = '".$user_id."' OR sender_id = '".$user_id."' AND receiver_id = '".$session_id."'
ORDER BY message_date
2

wystarczy tak:

select * from messages
where (sender_id = '".$session_id."' AND receiver_id = '".$user_id.") or (sender_id = '".$user_id."' AND receiver_id = '".$session_id.")
order by message_date 

--i po kłopocie
--nie rozumiem w czym Ty masz Pan problem
1

Udało mi się dojść wczoraj samemu ale zapomniałem wstawić prawidłową wersję na forum. Laflx oraz Wielki Szczur mają rację :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1