Php MySQL限制带join的左表
我有以下疑问:Php MySQL限制带join的左表,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,我有以下疑问: SELECT * FROM (`bf_discussion`) JOIN `bf_discussion` as b ON `b`.`parent` = `bf_discussion`.`id` WHERE `bf_discussion`.`projec_id` = '1' LIMIT 10 我试图从数据库中选择10个讨论。这些讨论中的每一个都可能有无限多的子元素(由父元素id引用) 如何将左表限制为10,同时允许无限制地检索子讨论 (我在Codeigniter中使用了这个选项,
SELECT * FROM (`bf_discussion`) JOIN `bf_discussion` as b ON `b`.`parent` = `bf_discussion`.`id` WHERE `bf_discussion`.`projec_id` = '1' LIMIT 10
我试图从数据库中选择10个讨论。这些讨论中的每一个都可能有无限多的子元素(由父元素id引用)
如何将左表限制为10,同时允许无限制地检索子讨论
(我在Codeigniter中使用了这个选项,所以如果Codeigniter中有一个很好的解决方案,那就是完美的)子选择通常并不理想,但是这个查询怎么样?它将返回最多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
如果不更好地理解您的模式,就很难知道如何解决这个问题。也许试着选择不同的?没关系,只是看到你的评论。谢谢你,亚当。我来看看。只要在左联接之后按您想要的任何方式添加一个组。@Adam,您可能还需要指定您想要的列(而不是
SELECT*
)。这会返回重复的列,因为您从同一个表中选择了两次*是有道理的。但是我希望所有列都同时出现在父级和子级中,我该如何处理?