假设有一个名为“users”的表、一个名为“posts”的表和一个名为“ratings”的表,其中包含每个用户对每个帖子的评分(“喜欢”或“不喜欢”)。
create table ratings (
user_id int unsigned not null,
post_id int unsigned not null,
rating set('like','dislike') not null,
primary key (user_id, post_id)
);
给定一个帖子 X,我想选择所有的帖子 Y,使得对它们都评分的用户都不会喜欢它们。此外,如果可能的话,我想按照对它们进行评分的普通用户数量对这些帖子进行排序,这意味着具有 X 的最常见“评分者”的帖子 Y 应该排在第一位。
我会复制我目前所做的一切,但我认为这些都不值得。感谢任何帮助,谢谢!
最佳答案
尝试 this fiddle .我不是 100% 确定我得到了你想要的,但是......检查你自己的数据是否合适。
您还可以删除 WHERE
并将 X.post_id AS this_post_id
添加到 FROM
以获取所有帖子的此信息。
关于mysql - 给定一个帖子 X,选择所有的帖子 Y,使得对它们都评分的用户都没有喜欢它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543347/