寻找查询以查找两个成员在同一个帖子中发布的位置

时间:2013-07-23 01:53:44

标签: mysql forum

我正在寻找一个MySQL查询来查找两个用户在同一个帖子中发布的位置。这是一个示例,其中user_id 1和user_id 31都发布在thread_id 10中。

example

到目前为止,我已创建此查询,但它不会检索任何结果。结果应该是thread_id 10。

SELECT thread_id
FROM post
WHERE user_id='1'
AND user_id='31'

3 个答案:

答案 0 :(得分:3)

您的查询存在的问题是,没有一行可以同时拥有这两个用户。

您可以将逻辑移动到having子句(使用group by)来执行您想要的操作:

SELECT thread_id
FROM post
group by thread_id
having max(user_id = '1') > 0 and
       max(user_id ='31') > 0;

答案 1 :(得分:1)

SELECT p1.thread_id
FROM post p1 JOIN post p2 ON p1.thread_id=p2.thread_id
WHERE p1.user_id='1' AND p2.user_id='31'
GROUP BY p1.thread_id

SELECT p1.thread_id
FROM post p1
WHERE p1.user_id='1' 
      AND EXISTS(SELECT * FROM post p2 WHERE p2.thread_id=p1.thread_id AND p2.user_id='31')
GROUP BY p1.thread_id

答案 2 :(得分:1)

假设311只有一个示例,并且您想要找到所有帖子的帖子ID 两次或更多次:

SELECT thread_id
FROM post  
GROUP BY thread_id
HAVING COUNT(thread_id) > 1;