我正在尝试实现一个消息传递系统,但略有不同。消息只能从用户 2 开始发送到用户 1。此开始消息的 start = 1 值。
+---------+----------+----------+-----------+----- -----+-------+---------------------+
| id (ai) | user1id | user2id | originated| to_user2 | start | messag |
+---------+----------+----------+-----------+-----------+-------+---------------------+
| 1 | 1 | 2 | 1234 | 0 | 1 | Hi |
| 2 | 1 | 2 | 1234 | 1 | 0 | Hi back |
| 3 | 1 | 2 | 1234 | 0 | 0 | So Whats up |
| 4 | 1 | 2 | 1234 | 1 | 0 | Nothing much, why |
| 5 | 1 | 2 | 1234 | 0 | 0 | Just checking |
| 6 | 1 | 2 | 1234 | 1 | 0 | OK |
+---------+----------+----------+-----------+-----------+-------+---------------------+
所以我可以通过执行 WHERE start = '1' 来获取起始消息。
我可以通过 WHERE to_user2 = '1' 获取从 user1 到 user2 的消息
我可以通过执行 WHERE to_user2 = '0' 和 start='0' 来获取从 user2 到 user1 的消息
正确的?跟着我?
我将如何进行查询,以便获得以下输出:
STARTING MESSAGE (id 1)
message to user2 (id 2)
message to user 1 (id3)
message to user 2 (id4)
message to user 1 (id5)
message to user 2 (id6)
我希望我能说得通。
让我澄清一下,我能够使用 6 个不同的查询获得此输出,但我想知道这是否是要走的路,以及它是否可能在 1 个查询中。