0

2 人のユーザーが同じスレッドに投稿した場所を見つけるための MySQL クエリを探しています。これは、user_id 1 と user_id 31 の両方が thread_id 10 に投稿された例です。

例

これまでのところ、このクエリを作成しましたが、結果は取得されません。結果は、thread_id 10 になります。

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

3 に答える 3

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;
于 2013-07-23T02:04:31.050 に答える
1

と仮定する311例として、 2 回以上投稿したすべてのスレッドの ID を見つけたいとします。

SELECT thread_id
FROM post  
GROUP BY thread_id
HAVING COUNT(thread_id) > 1;
于 2013-07-23T02:08:40.847 に答える
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
于 2013-07-23T01:57:41.957 に答える