【发布时间】:2019-03-08 16:36:34
【问题描述】:
我希望通过发件人 ID 或收件人 ID 查询表以获取发件人和收件人组之间的最后一次对话
我有下表
CREATE TABLE `messages` (
`message_id` Int( 11 ) AUTO_INCREMENT NOT NULL,
`author_id` Int( 11 ) NOT NULL,
`recipient_id` Int( 11 ) NOT NULL DEFAULT 0,
`message` Text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`date_created` Timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`date_updated` Timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`recipient_read` Int( 11 ) NOT NULL DEFAULT 0,
`attachment` VarChar( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
PRIMARY KEY ( `message_id` ),
CONSTRAINT `message_id` UNIQUE( `message_id` ) )
CHARACTER SET = utf8
COLLATE = utf8_general_ci
ENGINE = InnoDB;
样本数据:
+------------+------------+--------------+------ ---------------------+----------+ | message_id |作者_id |收件人 ID |留言 |日期创建 | +------------+------------+--------------+--------- ------------------+----------+ | 1 | 1 | 101 |嘿伙计,怎么了! | 2019-03-08 11:11:07 | | 2 | 1 | 101 |希望一切安好? :) | 2019-03-08 11:11:30 | | 3 | 101 | 1 |是的,很好,谢谢 | 2019-03-08 11:25:04 | | 4 | 101 | 1 |现在超级忙.. | 2019-03-08 11:25:16 | | 5 | 1 | 101 |每天都一样的旧东西。 | 2019-03-08 11:26:45 | | 6 | 1 | 101 |是的,我想是的!但李.. | 2019-03-08 11:27:26 | | 7 | 1 | 100 |嗨,老兄!打我,我已经 | 2019-03-08 15:43:27 | | 8 | 5 | 101 |你好!来吧 | 2019-03-08 15:48:13 | | 10 | 1 | 99 | Niky nejez sam | 2019-03-08 16:06:18 | | 11 | 101 | 1 |最后一条消息! | 2019-03-08 17:18:44 | +------------+------------+--------------+--------- ------------------+------------------------+
我要查询的是特定用户 ID 的最后一条消息,结果应该返回为该用户发送或接收到的与他/她进行过对话的所有用户的最后一条消息。
例如,对用户 ID 1 的查询应返回以下内容:
+------------+------------+--------------+------ -----------------+---------+ | message_id |作者_id |收件人 ID |留言 |日期创建 | +------------+------------+--------------+--------- -----------------+----------+ | 7 | 1 | 100 |嗨,老兄!打我,我已经 | 2019-03-08 15:43:27 | | 10 | 1 | 99 | Niky nejez sam | 2019-03-08 16:06:18 | | 11 | 101 | 1 |最后一条消息! | 2019-03-08 17:18:44 | +------------+------------+--------------+--------- -----------------+------------------+
我整天都在绞尽脑汁想弄清楚这一点,并尝试了各种子查询和分组,但没有任何成功。
谁能指点我正确的方向。
【问题讨论】:
-
看看你是否可以在不包括一张图片的情况下提出同样的问题。
-
另外,recipient_read 存储什么样的值?
-
@Strawberry 感谢您的提示。我会用正确的格式更新问题