mysql聊天信息查询
我有一张叫做messages的表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
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
)。