结合计数并加入mysql

时间:2014-10-24 16:57:36

标签: mysql sql

我的一个名为articles的表格中包含idcategory_idarticle_text

并在Category表中:idparent_categorycategory_name

我想仅根据parent_category列出article_text(该类别中的文章的名称和总数)。如果某个类别在parent_category中为0,则表示其父类别。

我的查询将是这样的

select category_id from articles where article_text like '%somevalue%'
select count(category_name) from category where id=category_id

此查询只是为了清除想要的内容。 请告诉我们如何实现这一目标。 感谢

3 个答案:

答案 0 :(得分:0)

使用子查询,它将如下所示:

select count(category_name) from category where id= (select category_id from articles where article_text like '%somevalue%);

答案 1 :(得分:0)

如果我理解正确,您正在寻找一个类别列表,其中包含每个类别中具有指定文本(somevalue)的文章计数。您可以使用子查询执行此操作:

select category_id,category_name,
(select count(*) from articles
    where article_text like '%somevalue%'
    AND articles.category_id = categories.category_id) as article_count
FROM Categories

答案 2 :(得分:0)

使用LEFT JOINGROUP BY条款

SELECT category.id,
       category.category_name,
       COUNT(articles.id) AS articles_total
FROM category
LEFT JOIN articles ON category.id=articles.category_id
WHERE articles.article_text LIKE '%somevalue%'
GROUP BY category.id;