簡體   English   中英

用戶通過組對話mysql選擇消息

[英]group conversation by users mysql select for messages

表:

CREATE TABLE `messages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `from_user_id` int(11) unsigned NOT NULL,
  `to_user_id` int(11) unsigned NOT NULL,
  `seen` tinyint(1) NOT NULL DEFAULT '0',
  `sent` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `message` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `messages` (`id`, `from_user_id`, `to_user_id`, `seen`, `sent`, `message`)
VALUES
    (1,2,1,0,'2013-11-06 11:05:42','Hello!'),
    (2,1,2,0,'2013-11-06 11:05:52','Hello you too!'),
    (3,3,1,0,'2013-11-06 11:06:08','Whats up?'),
    (4,1,3,0,'2013-11-06 11:06:27','Not much');

我會將其放在sqlfiddle中,但對我而言它是無效的,我無法在最近32小時內訪問它。

我搜索了SO,發現了幾個相關的主題,但是具有不同的分組要求,因此無法將其應用於我的項目。

對於查詢,我知道當前用戶ID和目標用戶ID,並基於此查詢,我希望查詢返回按日期排序的這兩個用戶的所有對話。

我在想類似的東西:

SELECT message FROM messages WHERE from_user_id = 1 OR to_user_id = 1 [but where do I limit this query to target user 3?]

換句話說,我要選擇:

(3,3,1,0,'2013-11-06 11:06:08','Whats up?')
(4,1,3,0,'2013-11-06 11:06:27','Not much')

對於用戶1,與用戶3的對話。

SELECT message FROM messages 
WHERE 1 in (from_user_id,to_user_id) and 3 in (from_user_id,to_user_id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM