I am building a mysql based chat application.
My database schema has the following tables,
Users Messages
================= =================
id id
screen_name message
from
to
timestamp
The from and to fields on the messages table contain the id's of the users that sent and received each message.
I am trying to display all messages between a user ($id) and one of their friends ($friend). My query is the following:
$query = "SELECT messages.* , users.screen_name FROM users CROSS JOIN messages ";
$query .= "ON ( messages.to = $id AND messages.from = $friend ) ";
$query .= "OR ( messages.to = $friend AND messages.from = $id )";
The problem is that every message is twice in the result table.
I tried using DISTINCT but it either doesn't work in this scenario or I used it wrong.
What should my query be in order to have each message between the two users only once?