MySQL LIMIT只有父JOIN

时间:2014-08-22 15:15:21

标签: mysql limit

我有一个包含20个父行和38个子行的mysql表。子行具有列parent_id,即父行的id

这是查询

  SELECT child.*,parent.title as ptitle FROM mytable parent
  LEFT JOIN mytable child on child.`parent_id`=parent.id
  ORDER by parent.id ASC

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

另外,我如何限制子行...就像每个父行只显示5个子行一样?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

您可以将父表移动到子查询并在那里应用limit子句:

  SELECT    child.*, parent.title as ptitle 
  FROM      (SELECT * 
             FROM   mytable
             LIMIT  10) parent
  LEFT JOIN mytable child on child.`parent_id`=parent.id
  ORDER by  parent.id ASC