如何根据包含数组至少一个元素的相关表获取正确的行


How to get right rows according to related table containing at least one element of an array?

我有postspostWriters具有一对多关系的表。(我也有writersfollows表)。

每篇文章都是由几位作家合作撰写的。

我想获得最近 20 个提交的帖子,这些帖子是由我关注的至少一位作家撰写的。

例如我关注的作家:

$arrayOfWriterIds_IFollow = [3, 5, 123, 45, ..., 3456] // total 100 ids

我想获得最后 20 个帖子,我关注的作家中至少有一位为他们做出了贡献。

哪个 mysql 查询给我真正的结果?谢谢。

不知道完整的表结构,可能是这样的:

SELECT * FROM postWriters LEFT JOIN posts ON postWriters.post_id=posts.id WHERE postWriter.writer_id IN (your, followed, writers, here) GROUP BY posts.id ORDER BY posts.date DESC LIMIT 0,20;

使用 IN 选择您的作者,GROUP BY 删除重复的帖子,然后按 DESC 排序以获取最新的日期,最后限制。