MySQL LIMIT 仅父 JOIN

use*_*134 2 mysql sql select join limit

我有一个 mysql 表,有 20 个父行和 38 个子行。子行具有parent_idid行的列。

这是查询

  SELECT child.*,parent.title as ptitle FROM mytable parent
  LEFT JOIN mytable child on child.`parent_id`=parent.id
  ORDER by parent.id ASC
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试进行分页。我只需要每页 10 个父行。我如何以仅获取 10 个父行但仍获取子行的方式限制结果?

另外我如何限制子行..比如每个父行只显示 5 个子行?

got*_*tqn 5

您需要限制从父表中提取的行,然后进行联接。

SELECT *
FROM 
(
    SELECT *
    FROM mytable
    LIMIT 10
) parent
LEFT JOIN mytable child on child.`parent_id`=parent.id
  ORDER by parent.id ASC
Run Code Online (Sandbox Code Playgroud)