Php 如何在一次查询中选择所有新闻条目和对他的所有评论

Php 如何在一次查询中选择所有新闻条目和对他的所有评论,php,mysql,mysqli,Php,Mysql,Mysqli,答复问题* 你真的认为这是最好的方式吗 我还需要获取当前用户[authorId]=>99的所有新闻 范例 并获取此用户的所有评论 范例 其他表格用户 $users = array( [0] = array( [userId]=>99, [userName]=>"User99" ) ); 之后 select * from news n left join users u on n.authorId = u.userId where n.authorId = 99 进入此选择按钮,

答复问题*

你真的认为这是最好的方式吗

我还需要获取当前用户[authorId]=>99的所有新闻 范例

并获取此用户的所有评论 范例

其他表格用户

$users = array(
[0] = array(
[userId]=>99,
[userName]=>"User99"
)
);
之后

select * from news n left join users u on n.authorId = u.userId where n.authorId = 99
进入此选择按钮,按select以获取评论

array(
    [0] => array(
        [id] => 1 // news' id
        [userId] => 99,
        [data]=>"Lorem Ipsum",
        [comments] => array(
            [0] => arra(
                [comId] => 1 // comment's id
                [userId] => 99
                [data]=>"bla bla"
            ),
            ...
        )
    ),
    ...
)
问题***(上)

第一个查询获取所有新闻文章并将它们放入一个数组中。第二个查询获取评论,并在每个新闻文章的结构中累积一个单独的数组

但是如果这个查询和foreach两个数组在 例子
10000刷新页面?

您必须使用逻辑缓存

1) 如果您获得许多记录并限制分页查询结果

2) 以不同的方式为每个表提供单独的信息

$user = array();

$comments = array();
3) 使用foreach和array\u merge组合两个数组

$merge = array();
$i=0;
foreach ($comments as $row) {
   extract($row);
   if(in_array($iduser, $user)):
     $merge[$i] = $comments + $user;
   endif;
$i++;
}
这是一个没有试过的伪代码,可能应该做一些调整。我希望你能为我服务

$user = array();

$comments = array();
$merge = array();
$i=0;
foreach ($comments as $row) {
   extract($row);
   if(in_array($iduser, $user)):
     $merge[$i] = $comments + $user;
   endif;
$i++;
}