过去两天我一直在自杀,试图找出一个问题。
我正在加入两个表,一个用户和一个评论。注释嵌套在parent_id上。问题是如果使用LIMIT子句,我无法根据创建的日期订购记录。
这个想法是提取x个记录,并且还包括在其中的孩子。
我在这里创建了SQL Fiddle:http://sqlfiddle.com/#!9/540f46/3
答案 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;