繁体   English   中英

选择所有评论的所有评论php mysql

[英]select all comments with all posts php mysql

我有一个论坛,用户可以在其中发布问题,也可以发表评论和鸣叫。

我想获取每个帖子的所有commentstweets

我以前所做的是在3组查询中执行的。

$data = mysqli_query($con,"select * from posts");
while($row = mysqli_fetch_assoc($data)){
  $pid  = $row['post_id'];
  $dataCo = mysqli_query("SELECT comments.* FROM comments WHERE post_id = $pid");
  $dataTw = mysqli_query("SELECT tweets.* FROM tweets WHERE post_id = $pid");
  //2 while loop for comments and tweets

}

谁能告诉我如何在一个查询中执行这些操作,因为如果在第一个查询中有很多posts ,那么将有很多查询要做。

要么

也许有更快的方法吗?

也许您可以使用Mysql IN子句

http://www.tutorialspoint.com/mysql/mysql-in-clause.htm

在您的示例中,您总是有2 * n + 1个对DB的查询。 其中,此查询中返回的行数为n

$data = mysqli_query($con,"select * from posts");

如果使用mysql IN子句,则只有3个查询。

您的查询应如下所示

$dataCo = mysqli_query("SELECT comments.* FROM comments WHERE post_id IN (1,2,3,4)");
$dataTw = mysqli_query("SELECT tweets.* FROM tweets WHERE post_id IN (1,2,3,4)");

数字“ 1,2,3,4”是您第一个问题中返回的post_id。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM