【发布时间】:2015-03-04 12:11:51
【问题描述】:
我有一个论坛,用户可以在其中发布问题并可以支持和反对。
我想获取每个帖子的upvote 和downvote。
我之前所做的是在 3 组查询中执行此操作。
$data = mysqli_query($con,"select * from posts");
while($row = mysqli_fetch_assoc($data)){
$pid = $row['post_id'];
$up = mysqli_fetch_assoc(mysqli_query("SELECT COUNT(*) as c FROM up WHERE post_id = $pid"))['c'];
$down = mysqli_fetch_assoc(mysqli_query("SELECT COUNT(*) as c FROM down WHERE post_id = $pid"))['c'];
}
谁能告诉我如何在一个查询中做这些事情,因为如果在第一个查询中得到很多posts,那么会有很多查询要做。
【问题讨论】:
-
那么优化它的第一种方法是使用任何列名而不是 *。尤其是您只需要 post_id 的第一个查询。
-
你能展示一下你的posts表的结构吗?
-
@AntonyD'Andrea 这只是一个例子,我知道你在说什么
-
@AmitThakur 工作完成
标签: php mysql sql select count