我有以下查询:
SELECT * FROM (`bf_discussion`) JOIN `bf_discussion` as b ON `b`.`parent` = `bf_discussion`.`id` WHERE `bf_discussion`.`projec_id` = '1' LIMIT 10
我正在尝试从数据库中选择10个讨论。这些讨论中的每一个都可能有无限量的子节点(由parent_id引用)。
如何将LEFT表限制为仅10,同时允许无限制地检索子讨论?
(我在Codeigniter中使用它,所以如果在codeigniter中有一个很好的解决方案,这将是完美的)
答案 0 :(得分:1)
子选择通常不理想,但这个查询怎么样?它将返回最多10个与您的特定项目_id的讨论,但也将返回所有儿童讨论以进行这些家长讨论。
SELECT
parents.*, b.*
FROM
(SELECT * FROM bf_discussion
WHERE projec_id = 1
LIMIT 10) parents
LEFT JOIN bf_discussion b ON parents.id = b.parent