mysql聊天信息查询

mysql聊天信息查询,mysql,messaging,Mysql,Messaging,我有一张叫做messages的表 id - message - sender - receiver 1 - hello - 1 - 2 2 - hello - 1 - 2 3 - hello - 2 - 1 4 - hello - 3 - 1 5 - hello - 1 - 3 6 - hello - 23 - 1

我有一张叫做messages的表

id - message - sender - receiver
1  -  hello  -   1    -    2     
2  -  hello  -   1    -    2     
3  -  hello  -   2    -    1     
4  -  hello  -   3    -    1     
5  -  hello  -   1    -    3     
6  -  hello  -   23   -    1     
7  -  hello  -   1    -    23     
8  -  hello  -   1    -    2   
和用户

id   -   name   -       email     -   phone
1    -   abc1   -   abc@gmail.com - 1234567890
2    -   abc2   -   abc@gmail.com - 1234567890
3    -   abc3   -   abc@gmail.com - 1234567890
23   -  abc23   -   abc@gmail.com - 1234567890
现在,我想从messages表中按发件人和收件人选择UserID1与(不包括UserID1)组聊天的所有用户

换句话说,我只想从messages表中选择那些用户1与之聊天的记录

目前我有这个sql查询

SELECT * FROM messages INNER JOIN users ON messages.sender=users.id OR messages.receiver=users.id WHERE users.id!='1' GROUP BY users.id
但这个查询的问题是 它选择userid 1不在users表中的所有记录

我只想从用户1与之聊天的用户表中选择那些记录


任何帮助都将不胜感激

这可能更适合,因为在我看来,这并不完全与服务器相关。它们都是id 1不。。我的错误我改正了,我不知道你的意思。您说“排除用户标识1”,但随后您说“问题-用户标识1不在用户表中”将
按用户分组.id
更改为
按用户排序.id
。您的描述不是分组类型的函数,因为组上没有聚合函数。听起来你只是想把它们放在一起(也就是说,
orderby
)。