Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一站式查询帖子和评论?_Php_Mysql_Hierarchical Data - Fatal编程技术网

Php 一站式查询帖子和评论?

Php 一站式查询帖子和评论?,php,mysql,hierarchical-data,Php,Mysql,Hierarchical Data,我一直在阅读关于分层数据库结构的文章,我想知道如何将它应用到我当前的代码中。目前,我正在查询所有帖子,然后在该查询的循环中,我对该帖子的所有评论进行另一次查询。因此,每个帖子都有一个额外的查询;这对我来说似乎效率低下。我的表格结构: posts.id、posts.userid、posts.text comments.id,comments.posted,comments.userid,comments.text 我看到一些帖子,其中有人提到在一个查询中完成所有这些操作,返回的查询使用sql的CO

我一直在阅读关于分层数据库结构的文章,我想知道如何将它应用到我当前的代码中。目前,我正在查询所有帖子,然后在该查询的循环中,我对该帖子的所有评论进行另一次查询。因此,每个帖子都有一个额外的查询;这对我来说似乎效率低下。我的表格结构:

posts.id、posts.userid、posts.text

comments.id,comments.posted,comments.userid,comments.text


我看到一些帖子,其中有人提到在一个查询中完成所有这些操作,返回的查询使用sql的CONCAT()为缩进注释添加空格。然后在appcode中检查空格并相应地显示。关于“我的数据样式”的查询有什么想法吗?

你可以选择任何你喜欢的字段,但是选择comments.text行会很麻烦

我通常会将帖子和评论放在同一张表中: POST(postid、用户ID、文本、父项\u postid)

当parent_postid==0时,您知道它是否是一篇文章,并且您可以轻松获取同一篇“文章”的所有文章/评论
我认为在大多数系统中,这是一种更常见的方法。虽然我有两张表,但理论是一样的;我可以离开加入注释表,并对注释进行连接,这样我就知道它们是显示中的注释。编辑:这会不会给你太多的冗余数据(帖子文本等)?当你离开JOIN时,你会从两个表中得到列-你会在all ROWSCRECT中得到所选帖子的数据。但我想知道这种方式是否比两个查询更好。不管怎样,我认为在一个查询中执行该操作会更有效