【发布时间】:2013-06-12 12:26:09
【问题描述】:
我正在尝试实现一个消息传递系统,但略有不同。 只能从用户 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 个查询中。
【问题讨论】:
-
你不能在子句中使用 or 条件来获取它们吗?
-
您能详细说明一下吗?
-
我最好把它作为一个答案,这样你就可以在那里帮助我。
标签: mysql join database-design output