【问题标题】:GROUP_CONCAT for grouping multiple rows for a userGROUP_CONCAT 用于为用户分组多行
【发布时间】:2016-12-21 13:27:35
【问题描述】:

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

SQL: http://sqlfiddle.com/#!9/7d6a9 用于 usr_msg
http://sqlfiddle.com/#!9/3ac0f 用于 token_msg。

我有 2 张桌子:token_msgsuser_msgs

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

谢谢。

【问题讨论】:

  • 您的预期输出是什么?一个列表?行集?这还不清楚。请编辑您的问题以提供此信息。我认为你根本不需要GROUP_CONCAT
  • @KamilG。添加图像以说明我的预期输出。

标签: mysql sql pseudocode group-concat


【解决方案1】:

假设您有一个用户列表,您可以使用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);

【讨论】:

  • 但这会返回所有的值.. 我怎样才能将它一次限制为 1 个对话?
猜你喜欢
  • 1970-01-01
  • 2017-11-23
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 2019-06-25
  • 1970-01-01
  • 2012-10-03
相关资源
最近更新 更多