【问题标题】:MySql query to retrieve a conversation between 2 usersMySql 查询以检索 2 个用户之间的对话
【发布时间】:2019-03-09 19:01:51
【问题描述】:

我有一个快速的问题,我可以对此发表意见。我正在尝试编写一个 MySQL 查询,该查询从两个用户之间的对话中提取所有消息。 我需要能够提取 'user1' 发送的消息 发送给 'user2' 的消息,以及 'user2' 发送的消息发送到“user1”

我已经涉足了一点,我目前已经获得了执行查询所需的 4 个条件(见下文)。我一直在尝试找出如何构建它以获得我需要的特定数据。

    SELECT privatemessage_message, privatemessage_time_created, privatemessage_sent_by, privatemessage_sent_to 
    FROM tbl_privatemessages 
    WHERE privatemessage_sent_by = 1 
       OR privatemessage_sent_by = 2 
       OR privatemessage_sent_to = 1
       OR privatemessage_sent_to = 2
    ORDER BY privatemessage_time_created ASC

对于上下文: 这将在 PHP MySQL 网站中使用,其中 AJAX 用于私人消息传递。我对它的这些方面都很好,但是这个特殊的 SQL 查询很麻烦。

非常感谢任何帮助 :)

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您需要使用AND 组合发送方和接收方,并使用OR 组合不同的方向。

    SELECT privatemessage_message, privatemessage_time_created, privatemessage_sent_by, privatemessage_sent_to 
    FROM tbl_privatemessages 
    WHERE (privatemessage_sent_by = 1 AND privatemessage_sent_to = 2)
       OR (privatemessage_sent_to = 1 AND privatemessage_sent_by = 2)
    ORDER BY privatemessage_time_created ASC
    

    【讨论】:

    • @MichaelO。谢谢,修好了。
    • 按预期工作。感谢您抽出宝贵时间@Barmar
    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 2013-10-29
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多