Предположим, что таблица с именем 'users', таблица с именем 'posts' и таблица с именем 'rating' содержат оценку («нравится» или «не нравится») каждого пользователя по отношению к каждому сообщению.
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 так, чтобы ни один пользователь, который оценил их обоих, не понравился им обоим. Кроме того, если возможно, я бы хотел упорядочить эти посты по количеству обычных пользователей, которые их оценили, а это означает, что пост Y с наиболее распространенными «оценщиками» с X должен появляться первым.
Я бы скопировал то, что я сделал до сих пор, но я думаю, что ничего из этого не стоит. Любая помощь приветствуется, спасибо!