Php,MySql加入两个表并限制嵌套记录

时间:2017-01-21 03:51:17

标签: php mysql

过去两天我一直在自杀,试图找出一个问题。

我正在加入两个表,一个用户和一个评论。注释嵌套在parent_id上。问题是如果使用LIMIT子句,我无法根据创建的日期订购记录。

这个想法是提取x个记录,并且还包括在其中的孩子。

我在这里创建了SQL Fiddle:http://sqlfiddle.com/#!9/540f46/3

1 个答案:

答案 0 :(得分:1)

根据您在下面提到的输出,我假设您想要获得最新的三条评论,其中没有父母(parent_id = 0,所以8,5,4)和他们所有的孩子(6,7)。

试试这个:

SELECT 
    c.id, c.user_id, c.parent_id, c.body, c.created, u.name
FROM
    `comments` AS c
        INNER JOIN
    (SELECT 
        id
    FROM
        `comments`
    WHERE
        page = 'main' AND parent_id = 0
    ORDER BY created DESC
    LIMIT 0 , 3) AS temp ON temp.id IN (c.id , c.parent_id)
        LEFT JOIN
    users AS u ON u.id = c.user_id
ORDER BY c.created DESC;

SQLFiddle