0
我有2個SQL表:Conversations
和Users
。對話有很多用戶,用戶有很多對話。所以我有連接表Conversations_users
有2個字段:conversation_id
和user_id
。SQL查詢檢索對話記錄
現在我知道一些用戶的ID,我想檢索所有這些用戶都在同一個對話中的對話。有人可以幫助我嗎?
我有2個SQL表:Conversations
和Users
。對話有很多用戶,用戶有很多對話。所以我有連接表Conversations_users
有2個字段:conversation_id
和user_id
。SQL查詢檢索對話記錄
現在我知道一些用戶的ID,我想檢索所有這些用戶都在同一個對話中的對話。有人可以幫助我嗎?
一種方式是通過用戶,組由會話過濾Conversations_users
表,然後過濾所得到的基團爲那些含有的(不同)用戶所需數量:
SELECT Conversations.*
FROM Conversations JOIN Conversations_users USING (conversation_id)
WHERE Conversations_users.user_id IN (1,2,3)
GROUP BY conversation_id
HAVING COUNT(DISTINCT Conversations_users.user_id) = 3
如果(conversation_id, user_id)
保證是在Conversation_users
(例如它的表格的PRIMARY KEY
)中是唯一的,可以使用COUNT(*)
而不是(昂貴的)COUNT(DISTINCT Conversations_users.user_id)
。
你做了什麼?你的代碼在哪裏? – Oyeme
發佈你的架構,因爲你在這裏只存儲我認爲你想檢索對話的評論,所以你需要在3個表上的加入 – enigmaticus
你真的需要3個表,對話,消息,用戶, –