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

时间:2015-01-06 19:49:58

标签: php mysql sql select subquery

我有一个论坛,用户可以发帖提问,也可以发表评论和推文。

我希望得到每个帖子的所有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,则会有很多查询要执行。< / p>

OR

也许有更快的方法吗?

1 个答案:

答案 0 :(得分:0)

也许你可以使用Mysql IN子句

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

在您的示例中,您始终对DB进行2 * n + 1次查询。其中n在此查询中返回的行数

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

如果使用mysql IN Clause,则只有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。