2017-05-26 83 views
0

我有一個表,這個數據:SQL比較和選擇行

enter image description here

我想獲得的thread_id只能由USER_ID 140和我的例子1

所以共享結果將是356和358

有了這個請求

select a.user_id , b.user_id, a.thread_id 
from `wp_bp_messages_recipients` as a, `wp_bp_messages_recipients` as b 
where a.thread_id = b.thread_id 
and a.user_id = 1 
and b.user_id = 140 

我有356,358,359,但我不想要thread_id 359,因爲它與user_id 5共享。

非常感謝您的幫助!

回答

0

您可以使用GROUP BY具有鮮明COUNT,如:

SELECT thread_id 
FROM table_name 
WHERE thread_id NOT IN (SELECT thread_id FROM table_name WHERE user_id NOT IN (1, 140)) 
GROUP BY thread_id 
HAVING COUNT(DISTINCT(user_id)) = 2; 
+0

謝謝,但我得到這個請求相同的結果:http://imgur.com/a/CB9wI上的phpmyadmin (測試) – Jean

+0

非常感謝它的工作:) 這是最快的請求可能嗎?我有一張巨大的桌子。 – Jean

+0

我已經刪除了一個條件,現在試試?是的,只要'thread_id'列被索引,就應該沒問題。 –