这是情况。我有两个表:
消息表具有以下列(仅是重要的列):
我需要做的是构造一个SELECT查询,该查询将选择2个用户之间的完整对话。即,如果用户A回复了从用户B发送的消息,而用户B回复了该消息,我想得到如下三行:
我确信可以基于reply_to字段构造这样的SELECT查询,但是我之前从未做过类似的事情,因此我需要一点帮助。
SELECT查询应针对MySQL数据库。
其实您是不对的:使用ANSI SQL,这 是 不可能的。某些具有供应商扩展名的数据库(例如Oracle的CONNECT BY)可能能够执行您想要的操作,但不能执行普通的旧SQL。
CONNECT BY
我的建议?更改您的数据,以便启用更简单的解决方案。
在这种情况下,请为每个消息指定一个session_id。如果用户发布新消息,请提供一个新值(当前未使用)。如果他们回复,请保留要回复的邮件的session_id。
然后,查询数据变得无关紧要。