簡體   English   中英

查詢 SQL | 在聊天中創建查詢

[英]Query SQL | Query creation in a chat

我需要幫助來創建查詢。 我正在嘗試創建一個聊天,我想在其中顯示 2 個用戶之間的消息。

當我進行查詢時,看起來我只想單方面地展示對話。 我想向雙方展示信息。

這是表定義:

Create table chat (pid int, id_user int, id_otheruser int, message varchar(45));
insert into chat values
   (1, 1, 9, 'Test chat 1'),
   (2, 1, 9, 'Test chat 2'),
   (3, 9, 1, 'Test chat 3'),
   (4, 1, 10, 'Test chat 4');

這是我的查詢:

SELECT * FROM `chat` WHERE `id_user` = 1 and `id_otheruser` = 9;

在小提琴中:

http://sqlfiddle.com/#!9/313f58/1

在上面的示例中,我想顯示 ID 1 和 ID 9 之間的對話,但我無法向后顯示對話(從 ID 9 到 ID 1)

SELECT * 
FROM `chat` 
WHERE 
     (`id_user` = 1 and `id_otheruser` = 9)
  OR (`id_user` = 9 and `id_otehruser` = 1);

或者(可能表現更好):

SELECT * 
FROM `chat` 
WHERE `id_user` = 1 and `id_otheruser` = 9

UNION

SELECT * 
FROM `chat` 
WHERE `id_user` = 9 and `id_otheruser` = 1;

我進一步建議在此表中添加一個日期時間字段,以保留消息的順序和時間。

暫無
暫無

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

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