从一个表中选择并从另一个表中计数

时间:2015-07-24 07:59:05

标签: php mysql mysqli

我想知道如何使用单个查询从一个表中选择并从另一个表中进行计数(循环)

表格标签

------------------------------
cat_id | cat_name | parent_id 
------------------------------
1      | General   | 0
------------------------------
2      | News      | 0
------------------------------
3      | Sports    | 1
------------------------------
4     | Test       | 0
------------------------------

表格

--------------------------------------
post_id| title     | c_id   | active
--------------------------------------
1      | test      | 1      |  1
--------------------------------------
1      | test 1    | 2      |  0
--------------------------------------
1      | test 2    | 1      |  1
--------------------------------------
1      | Test 3    | 3      |  1
--------------------------------------

我想要显示类别where parent_id=0(主要类别),并在其前面添加帖子数(帖子where active = 1

例如:一般(2个帖子)

任何人都可以举例说明如何使用一个查询

2 个答案:

答案 0 :(得分:1)

SELECT 
    `cat_name`, 
    (SELECT COUNT(*) FROM `posts` p WHERE p.active =1 AND p.c_id = c.cat_id) as post_count 
FROM `category` c
WHERE c.parent_id = 0
ORDER BY `cat_name` ASC

答案 1 :(得分:1)

尝试此查询,您可以在查询中使用带有select语句的子查询。

    select cat_name,
     (select count(*) 
      from post 
      where active=1 
      and c_id=cat_id
      ) as countpost 
    from ctagories 
    where parent_id=0;