Code: Select all
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
Code: Select all
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);
Ich habe die Variablen int friendsId = 2 und int userId = 4. Ich habe versucht, so etwas zu tun:
Code: Select all
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
Code: Select all
List collection = this.db.query(serverQuery, new FriendMessageRowMapper(), friendId, friendId , userId, friendId, friendId, userId);