我正在放在一起的線程消息服務,我試圖包圍我的頭一輪特定的查詢。我目前正在嘗試創建一個過程,它會在提供一個user_id數組時返回thread_id。MYSQL選擇消息線程ID由多個用戶ids
表中只有兩列:thread_id & user_id。 我有4個表中的行來進行測試:
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (1,1);
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (1,70);
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (2,1);
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (2,21);
此示例用戶1個消息傳遞用戶70以開始第一線程,然後消息用戶21啓動線程2;
由於我已經有兩個用戶的ID,我想要得到的是基於用戶「訂閱」到線程的列表找到thread_id。
有將是通過幾個連接的請求更多的數據,但我不想把它列入到這個問題......所以,隨着中說,讓剛剛縮短查詢:
SELECT DISTINCT `thread_id`
FROM `thread_participants`
WHERE `thread_participants`.`user_id` IN (1, 21)
GROUP BY `thread_id`
其中應該返回2.
我認識到,該查詢將返回正確的thread_id枯萎,如果有相關的線程2個用戶或20 任何幫助將不勝感激:-)謝謝!
你可以給你一些你想要得到的輸出例子嗎? – Tin
(來自原始問題 - 「其中應該返回2.」)因此,查詢user_id數組爲(1,21) - > 2 - 或 - (1,70) - > 1。它會返回一行,並選擇列將thread_id – user3617416