我在 mysql 数据库中有 2 个表,第一个包含如下部分:
parts
primary part_name part_id
0 web 1
0 graphic 2
1 php 3
1 asp 4
2 photoshop 5
2 illustrator 6
1 html 7
一些部分是初级的,如网页、图形。其他是小节 例如 web 部分包含 (php,asp,html) 部分 所以在主要领域有父亲部分的ID
图形部分包含(photoshop、illustrator)部分。
另一个表是posts;
posts
post_content post_title part_id post_id
anything any title 3 1
anything any title 6 2
anything any title 3 3
anything any title 3 4
anything any title 7 5
anything any title 6 6
anything any title 4 7
anything any title 4 8
anything any title 3 9
我想得到一个包含主要部分的表(primary = 0) 以及它的帖子总和
结果应该是这样的;
query result
count_posts part_name part_id
7 web 1
2 graphic 2
我试过这个:
SELECT p.*,count(s.post_id)
FROM part p,post s
where s.part_id = 1
and p.belong = 1
但它只得到一部分的结果
最佳答案
除了我自己的帖子,还不能评论其他帖子,所以我提交了一个新的答案。 @StuartLC 答案缺少主要部分和小节之间的连接。
SELECT COUNT(po.post_id) AS count_posts, pa.part_name, pa.part_id
FROM parts pa
INNER JOIN parts pa2 on pa2.[primary] = pa.part_id
INNER JOIN posts po on po.part_id = pa2.part_id
WHERE pa.[primary] = 0
GROUP BY pa.part_name, pa.part_id
关于sql - 如何使用sql查询查询每个部分的名称及其线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26631296/