如何基于优先级mysql排序结果

时间:2019-05-02 16:34:11

标签: mysql

我有2个表,分别称为postsuser_posts

posts table

id  content    created_at
 1  mmm       142189
 2  eee       145189
 3  sdad      149189
 4  asdasd    178898
 5  dqweq     144777
 6  w32334    123459

user_posts

id user_id   post_id created_at
1   1          1        142589
2   2          2        142789
3   3          3        142799

我想要的是我只想先显示当前用户的user_post。假设1,那么posts表中所有其他不在user_posts表中的user_id!= 1

帖子

这是我尝试的

 SELECT * FROM `posts` left join `user_posts` on posts.id=user_posts.post_id where (user_posts.post_id not in (select post_id from `user_posts` where `user_posts`.user_id !=1) or user_posts.post_id is null) ORDER BY `user_posts`.`created_at` DESC,posts.created_at desc

我得到了预期的结果。但是我对not in query不满意,因为随着user_posts表的增长,它会越来越慢。如何编写更好的查询?

0 个答案:

没有答案