mysql5.7 查询用户和好友聊天记录的最后一条
时间: 2024-09-28 10:14:30 浏览: 41
在MySQL 5.7中,如果你有一个包含用户信息、好友关系以及聊天记录的数据库表,比如`users`, `friendships`, 和 `chats`,你可以通过JOIN操作来查询特定用户与其好友之间的最新聊天记录。假设`chats`表有`user_id`, `friend_id`, 和 `message_time`字段:
```sql
SELECT c.*
FROM chats c
JOIN users u ON c.user_id = u.id
JOIN (
SELECT friend_id
FROM friendships
WHERE user_id = (SELECT id FROM users WHERE username = '目标用户')
) f ON c.friend_id = f.friend_id
WHERE (c.user_id = '目标用户' OR c.friend_id = '目标用户') AND
c.message_time = (
SELECT MAX(message_time)
FROM chats
WHERE user_id IN ('目标用户', '好友用户') AND
friend_id IN ('目标用户', '好友用户')
)
ORDER BY c.message_time DESC
LIMIT 1;
```
这个查询首先找到指定用户的ID(替换 `'目标用户'`),然后找出该用户的全部好友(`friend_id`)。接着,它获取这两个用户之间最新的聊天记录。
阅读全文