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)的主要内容,如果未能解决你的问题,请参考以下文章