0

我想获取订阅了一个帖子但其他类型的用户的 ID。

请检查下表

表:订阅者

userid  post_id  notification_made
33      780          2
35      780          2
29      780          2
33      780          1
35      780          1

在上图中,在插入最后 2 条记录时,我使用插入查询添加 33 和 35,notification_made = 1。在这里,我想获取此表中具有相同 post_id (780) 的用户的 ID,但那些不在相同的 notification_id (1)。所以我需要 29 个用户 ID,它在同一个 post_id 下但不在同一个 notification_made 下。

请帮忙 !

提前致谢。

4

1 回答 1

1

考虑到您有三个参数(两个用户标识和一个通知模式),并且要插入,您可以尝试:

INSERT INTO subscribers
SELECT DISTINCT a.userid, a.post_id, 1
FROM subscribers a
INNER JOIN
(
    SELECT post_id
    FROM subscribers
    WHERE userid IN (33,35) AND notification_made = 1
    GROUP BY post_id
    HAVING COUNT(*) = 2
) b ON a.post_id = b.post_id
WHERE a.userid NOT IN (33,35) AND a.notification_made <> 1
于 2012-07-23T08:55:02.617 回答