如何创建查询以对已向用户1发送或接收消息的用户进行分组。
SQL:
http://sqlfiddle.com/#!9/7d6a9代表usr_msg
token_msg的http://sqlfiddle.com/#!9/3ac0f。
我有2个表:token_msgs
和user_msgs
:
我想显示用户ID列表(非重复,例如用户2,3和4应该只能以DESC顺序显示一次),他们已经从user1发送/接收消息[from_id = 1 OR to_id = 1 ]。我无法为GROUP_CONCAT
创建逻辑,也不确定我是否真的需要加入这两个表。
谢谢。
答案 0 :(得分:0)
假设您有一个用户列表,您可以使用IN
或EXISTS
:
select u.*
from users u
where u.id in (select from_id from user_msgs where to_id = 1) or
u.id in (select to_id from user_msgs where from_id = 1) or
u.id in (select from_id from token_msgs where to_id = 1) or
u.id in (select to_id from token_msgs where from_id = 1);