Hi, I'm working on creating a simple private messaging plugin and I would like to use messages thread, same as in Facebook. Everything seems fine, but I would like to use ActiveRecord for the complicated query:
private function getInboxMessages(){
//return Message::where('reciever_id', $this->user_id)->get();
$results = Db::select("
SELECT
m.*
, u.nick AS sender_nick
, u2.nick AS reciever_nick
FROM `max_simplemsg_messages` AS m
LEFT JOIN users AS u ON (m.sender_id = u.id)
LEFT JOIN users AS u2 ON (m.reciever_id = u2.id)
WHERE (LEAST(m.sender_id, m.reciever_id), GREATEST(m.sender_id, m.reciever_id), m.created_at)
IN
(
SELECT LEAST(mi.sender_id, mi.reciever_id) x,
GREATEST(mi.sender_id, mi.reciever_id) y,
MAX(mi.created_at) max_date
FROM max_simplemsg_messages AS mi
GROUP BY x, y
)
AND ? IN (m.sender_id, m.reciever_id)", [$this->user_id]);
//var_dump($results);
return $results;
}