我试图在包含两个ID的中介表中找到最常用的类别,我正在运行它来查找针对类别的所有帖子数。

$data = $conn->query('SELECT * FROM category WHERE category_name ORDER BY category_name');

foreach($data as $row) {

$sql = "SELECT COUNT(p_id) FROM p_categories c,category ca WHERE c.category_id = ca.category_id AND category_name = :category_name";
$q = $conn->prepare($sql);
$q->execute(array(':category_name' => $row['category_name']));
$catco = $q->fetch();

echo '<p>'.$row['category_name'].' ('.$catco[0].')</p>';
}

这将返回所有类别,但是我想将其限制为仅具有最多p_id的前四个类别。 我尝试将计数查询限制为4,但这没有用。

表格如下:

帖子:p_id,p_name

p_categories:p_id,category_id

类别:category_id,category_name

===============>>#1 票数:0 已采纳

您可以在单个查询中执行此操作

$sql = "SELECT p_categories.category_id, COUNT(*) AS cnt, category.category_name
        FROM p_categories 
        LEFT JOIN category
        ON p_categories.category_id = category.id 
        GROUP BY `category_id` 
        ORDER BY cnt 
        DESC LIMIT 4"

$data = $conn->query($sql); 
foreach($data as $row) {
    echo '<p>'.$row['category_name'].' ('.$row['cnt'] .')</p>';
}

  ask by Abu Nooh translate from so

未解决问题?本站智能推荐:

2回复

MySQL联接/求和来自一个表列的值与来自另一个表的计数值

表1-“新闻” 表2-“ news_comments” 我需要获得每个新闻的总评论总数,其中,Facebook评论从第一张表开始计数,而每个特定新闻在另一张表中的评论总数都被计算在内。 这样-“总评论”: 提前致谢! :)
1回复

使用LEFT JOIN进行MySQL查询,并具有来自另一个表的OrderID的计数…卡住了

这是我当前的查询,并且按预期工作正常。 但是,现在我试图添加另一列,该列向我显示order_routes中每个OrderID的出现次数 我的订单路线现在看起来像这样 所以我想要一列,该列向我显示Order_routes表中有多少OrderID外观。 我想我的查询中需要
2回复

行计数MySQL有三个表

我的MySQL DB看起来像这样 我希望有这样的输出: 有没有办法在一个SQL查询中执行此操作? 如何?
2回复

mysql连接3个表并计数

请看这个图像 这里有3张桌子,我想要的是 来自同一uid表2中fid的同一uid计数的表3中的table1行业的uid 在示例示例中输出将是2条记录 谢谢
2回复

mysql查询2个带计数的表

嗨我有来自本地书店的以下查询/表格 现在我想从另一个表中添加一个列,其中显示每个用户借出的书籍数量。 所以如果单独嵌套的查询将会是这样的 从上面将此查询嵌套在while查询中(在启动之后)不起作用。 怎么做? 提供的参数不是有效的MySQL结果资源 谢谢
3回复

来自MySQL的PHP​​计数数组计数不正确

我无法正确计算从数据库中提取的数组中的元素。 请在下面查看我的代码: 两种方式同时使用两种类型的count()会产生相同的结果“ 4”。 但是,请从我的var_dump查看结果。 Var_dump显示它是一个包含4个元素的数组。 所以计数是正确的,只是没有给我我想要的电话号
3回复

mysql查询多个表和计数行

我是MySql的新手,我在查询查询结果时遇到问题。 我有2张桌子: Table1包含我系统的用户 表2包含每个用户的关注者 所以,在这种情况下,约翰有3个粉丝:肯,鲍勃和史蒂夫。 我想生成一个包含2列的第三个表:数据库用户和每个用户的关注者数量。 我想按照关注
1回复

在PHP MySQL上显示,联接,计数,分组6个表

在使用php和mysql显示,联接和分组6个表时出现问题。 我的桌子 loker_job:id_job,slug_job,职位,部门,级别,位置 loker_department:id_department,name_department loker_level:
2回复

mysql内部联接2个表并按计数顺序

我的数据库中有以下表格 工程项目 PROJECT_ASSIGNMENTS(WHERE projects.id = project_assignment.target_id) PROPERTIES(WHERE properties.id = project_assignmen
1回复

基于两个表的MYSQL计数

很抱歉提出这个问题,但是我没有找到我要在任何地方尝试做的答案! 基本上,我有一个包含两个表的数据库。 下面将使用两个示例: 表格1: 表2: 基本上,我将在PHP中执行一些操作,将选择表1,并查找今天发生的所有进程(在本示例中,我将说是8月21日)。 然后,我想获