我正在寻找更干净的方式来执行此操作。我的代码有效,但我知道它可以更好。我有三个表格:一个带有分类组列表,一个带有链接到分类组的分类列表,另一个带有链接到分类的新闻报道列表。PHP:使用链接表的MYSQL COUNT查询
我需要遍历类别组的所有名称,然后是类别组中所有类别的名称,并列出每个类别中的新闻报道的数量。
我有三个表:CategoryGroups,Categories,News。
我有一组查询。第一个查询全部来自CategoryGroups表中的行:
$result = mysql_query('
SELECT cat_group_id, cat_group_name FROM CategoryGroups
');
第二个查询是第一次查询的环形结果内,查找具有新闻条目和链接到一个特定的类别组的类别:
while($row = mysql_fetch_assoc($result)){
$id = $row['cat_group_id'];
$name = $row['cat_group_name'];
echo "
$name
";$sql = mysql_query("
SELECT category_id, title FROM `Categories`
WHERE cat_group_id = $id
AND category_id IN
(SELECT news.category_id FROM news)
");
while($row = mysql_fetch_assoc($sql)) {
$title = $row['title'];
$catid = $row['category_id'];
$numbers = mysql_query("
SELECT * FROM news
WHERE category_id =$catid"
);
$nums = mysql_num_rows($numbers);
echo "$title ($nums)
\n";
}
?>
我想将此限制在一个或两个查询中,要高效记住。我知道这可以做到,但是我的努力没有成功。
谢谢。