mysql - 使用 LEFT 连接的 LIMIT 行

标签 mysql join limit

我有“发布”和“评论”表格。我想要选择最后 3 篇文章该文章的所有评论。目前我使用 2 个单独的语句:

SELECT p.* FROM post p ORDER BY p.date DESC LIMIT 3; // called 1
SELECT c.* FROM comment c WHERE c.post_id = :id; // called 3x time for each post.

是否可以将这些查询合并为一个?

最佳答案

您可以对帖子集使用子查询:

SELECT p.*
FROM (SELECT p.*
      FROM post p
      ORDER BY p.date DESC
      LIMIT 3
     ) p JOIN
     comment c
     ON c.post_id = p.id
ORDER BY p.id, c.id;

关于mysql - 使用 LEFT 连接的 LIMIT 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45415740/

相关文章:

php - 子查询2中子查询1的sql调用表

string - Perl:现实生活中的字符串长度限制

php - 使用 PHP 从数据库表获取的 JSON 消息的格式变得扭曲

django 查询生成 LEFT OUTER JOIN 而不是 INNER JOIN

php - 是否可以将 sql 表值分配给 php 中的变量?

mysql - 连接值和可为 null 的值

mysql - 子查询中的限制

MySQL 查询未显示正确的数据

MySQL 错误似乎无法修复 : Index column size too large

mysql - 连接事件列表中的三个表