Код: Выделить всё
SELECT fm.*,
u.username AS friend_username
FROM friend_messages fm
JOIN users u ON
(u.id = fm.sender_id AND fm.sender_id = :friendId)
OR
(u.id = fm.receiver_id AND fm.receiver_id = :friendId)
WHERE
(fm.sender_id = :userId AND fm.receiver_id = :friendId)
OR
(fm.sender_id = :friendId AND fm.receiver_id = :userId)
ORDER BY fm.created_at ASC
Код: Выделить всё
String serverQuery = "SELECT sm.id AS message_id, sm.server_id, sm.sender_id, u.username AS sender_username, sm.content, sm.created_at FROM server_messages sm JOIN users u ON sm.sender_id = u.id WHERE sm.server_id = ? ORDER BY sm.created_at ASC";
List collection = this.db.query(serverQuery, new ServerMessageRowMapper(), serverId);
У меня есть переменные int friendsId = 2 и int userId = 4. Я пробовал сделать что-то вроде этого:
Код: Выделить всё
SELECT fm.*,
u.username AS friend_username
FROM friend_messages fm
JOIN users u ON
(u.id = fm.sender_id AND fm.sender_id = ?)
OR
(u.id = fm.receiver_id AND fm.receiver_id = ?)
WHERE
(fm.sender_id = ? AND fm.receiver_id = ?)
OR
(fm.sender_id = ? AND fm.receiver_id = ?)
ORDER BY fm.created_at ASC
List collection = this.db.query(serverQuery, new FriendMessageRowMapper(), friendId, friendId , userId, friendId, friendId, userId);
Подробнее здесь: https://stackoverflow.com/questions/793 ... 2-values-t