不知道您的数据库结构,它应该看起来像这样。请注意,您应该用
*实际需要的更明确的列列表替换字符。
SELECt p.*, c.*, u.* FROM posts pLEFT JOIN comments c ON c.post_id = p.idLEFT JOIN users u ON u.id = p.author_id
请注意,如果您只是想获取计数,总和之类的东西,则最好缓存其中的一些信息。例如,您可能希望将评论计数缓存在发布表中,而不是对每个查询都进行计数。仅在添加/删除评论时计算和更新评论数。
编辑:
意识到您还希望将用户数据附加到每个注释。您可以多次加入同一张表,但是它很难看。这可能会变成一个非常昂贵的查询。我还提供了一个有关如何为列添加别名的示例,以减少混乱:
SELECt p.*, c.*, u.name as post_author, u2.name as comment_author FROM posts pLEFT JOIN comments c ON c.post_id = p.idLEFT JOIN users u ON u.id = p.author_idLEFT JOIN users u2 ON u2.id = c.author_id
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)