GROUP_CONCAT用于为用户分组多行

时间:2016-08-15 10:30:25

标签: mysql sql pseudocode group-concat

如何创建查询以对已向用户1发送或接收消息的用户进行分组。

SQL: http://sqlfiddle.com/#!9/7d6a9代表usr_msg
token_msg的http://sqlfiddle.com/#!9/3ac0f

我有2个表:token_msgsuser_msgs

Image of my tables:

我想显示用户ID列表(非重复,例如用户2,3和4应该只能以DESC顺序显示一次),他们已经从user1发送/接收消息[from_id = 1 OR to_id = 1 ]。我无法为GROUP_CONCAT创建逻辑,也不确定我是否真的需要加入这两个表。

enter image description here

谢谢。

1 个答案:

答案 0 :(得分:0)

假设您有一个用户列表,您可以使用INEXISTS

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);