SQL 获取已收到发送消息的用户(UPDATE)

Posted

技术标签:

【中文标题】SQL 获取已收到发送消息的用户(UPDATE)【英文标题】:SQL obtain users who have received o send a messages (UPDATE) 【发布时间】:2021-07-29 08:28:30 【问题描述】:
SELECT * 
FROM users 
WHERE NOT unique_id = $outgoing_id 
  and unique_id in (select outgoing_msg_id 
                    from messages 
                    WHERE incoming_msg_id=$outgoing_id)  
                    ORDER BY user_id DESC);

有关数据库和表的更多信息:I need to get the list of users who have previously been sent message (mysql)(这是另一个问题,但大致相同)

【问题讨论】:

你想准确地展示什么?我不懂问题 你的问题是什么? PS。你真的认为有人会从 Q 跳到 Q 来解决你的问题吗?完全发布所需的数据。聚苯乙烯。子查询中的 ORDER BY 没有意义。 您需要选择收到您消息的用户吗? 在另一篇文章中我解释得更好 但是我把它放在另一个帖子中,因为其中一个回答的用户说我应该创建其他帖子 【参考方案1】:

已解决:

SELECT * FROM users WHERE NOT unique_id = "337244286" and unique_id in (
SELECT outgoing_msg_id FROm messages WHERE incoming_msg_id="337244286") 
UNION 
SELECT * FROM users WHERE NOT unique_id = "337244286" and unique_id in (select incoming_msg_id from messages WHERE outgoing_msg_id="337244286")

【讨论】:

【参考方案2】:

以用户 id 1 为例,我是这样做的:

SELECT 
  first_name 
FROM 
  users 
  LEFT JOIN messages received_messages ON received_messages.from_id = 1 
  AND received_messages.to_id = users.id 
  LEFT JOIN messages sent_messages ON sent_messages.from_id = users.id 
  AND sent_messages.to_id = 1 
WHERE 
  received_messages.id IS NOT NULL 
  OR sent_messages.id IS NOT NULL

【讨论】:

以上是关于SQL 获取已收到发送消息的用户(UPDATE)的主要内容,如果未能解决你的问题,请参考以下文章

主动给用户发消息-微信公众号模版消息

使用 spring 发送用户特定的消息

在 XMPP 中返回的已发送消息

发邮件自己的邮箱提示邮件已发送,为啥对方说没收到?

为啥电脑已提示邮件发送成功而对方却没收到?

从聊天中获取待处理消息