【发布时间】:2013-04-17 14:08:18
【问题描述】:
我正在尝试使用以下有问题的 sql 查询来计算特定页面上的 cmets:
$query = "SELECT * FROM `comments` WHERE is_approved = '1' AND page_id = '943'"
$query = mysql_query($query);
$total = mysql_num_rows($query);
echo $total;
问题是它输出的是 0 而不是 2。
表格如下:
页面:
id:1 page_id:943
id:2 page_id:978
id:3 page_id:977
cmets:
id:2 page_id:1 "hello"
id:3 page_id:1 "great"
id:4 page_id:3 "super"
所以真正的原始查询应该是从页面表中设置的page_id 中获取每个评论的true page_id,并由comments.page_id = pages.id 加入
最终的代码会是什么样子来进行连接和/或获得该计数?谢谢。
【问题讨论】:
-
我在您的 cmets 表上没有看到 is_approved 字段..
-
无论如何你需要通过 Pages.id 和 Comments.pages_id 加入这些表
-
@Elior 这不是真的,你可以使用
WHERE .. IN声明 -
@joelharkes 但使用 JOIN 更具可读性和速度!