Zapytanie:
$sql = 'SELECT m.*, s.status, t.subject, '.USER_TABLE_USERNAME . ' FROM msg_participants p ' . ' JOIN msg_threads t ON (t.id = p.thread_id) ' . ' JOIN msg_messages m ON (m.thread_id = t.id) ' . ' JOIN ' .USER_TABLE_TABLENAME. ' ON ('.USER_TABLE_ID.' = m.sender_id) '. ' JOIN msg_status s ON (s.message_id = m.id AND s.user_id = ? ) ' . ' WHERE p.user_id = ? ' ; if (!$full_thread) { $sql .= ' AND m.cdate >= p.cdate'; } $sql .= ' ORDER BY t.id '.$order_by. ', m.cdate '.$order_by;
Co chce zrobić to pobrać jedynie ostatnie wiadomości z danego wątku.
Więc zastępuje msg_messages dodatkowym selectem ale to nie działa !
JOIN msg_messages m ON ( (SELECT b.thread_id FROM msg_messages AS b ORDER BY b.id DESC LIMIT 1) = t.id)' .