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

请检查下表

表:订户

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


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

请帮忙 !

提前致谢。

最佳答案

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

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

关于mysql - 获取一个条件下不在同一表中的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11609200/

10-12 21:35