Php 显示类别,而不重复包含帖子的每个类别
我有类别表格:Php 显示类别,而不重复包含帖子的每个类别,php,mysql,sql,Php,Mysql,Sql,我有类别表格: cat_id cat_name post_id post_title post_content 超过类别-发布关系表类别相关: cat_rel_id cat_id post_id 和帖子表格: cat_id cat_name post_id post_title post_content 现在我在所有这些表中都有了数据,我需要拉出类别,而不必重复那些有超过1篇帖子的类别。如果有超过1篇文章,我会以某种方式重复分类,例如: php、python、C++、java、Rub
cat_id
cat_name
post_id
post_title
post_content
超过类别-发布关系表类别相关:
cat_rel_id
cat_id
post_id
和帖子表格:
cat_id
cat_name
post_id
post_title
post_content
现在我在所有这些表中都有了数据,我需要拉出类别,而不必重复那些有超过1篇帖子的类别。如果有超过1篇文章,我会以某种方式重复分类,例如:
php、python、C++、java、Ruby < /P>
如果我在PHP下有2篇文章,我将得到:
php
python
php
爪哇
这是我运行的查询:
SELECT categories.cat_name, cat_rel.post_id
FROM categories
LEFT JOIN cat_rel ON cat_rel.cat_ID = categories.cat_ID
如果您能帮助我们避免重复这些分类,我们将不胜感激
请看这里:
这将列出包含多个帖子的类别:
SELECT categories.cat_name as Category
, count(distinct cat_rel.post_id) as PostCount
FROM categories
LEFT JOIN cat_rel
ON cat_rel.cat_ID = categories.cat_ID
GROUP BY categories.cat_name
HAVING count(distinct cat_rel.post_id) > 1
试试这个:
选择不同的类别。类别名称,类别关系。职位id
从类别
左连接cat_rel ON cat_rel.cat_ID=categories.cat_ID
OP希望退出所有类别,而不重复那些有一个以上帖子的类别,而不是退出所有有一个以上帖子的类别。@MGA:那他为什么要加入cat_rel
?只要从类别中选择cat\u name
就可以拉出所有类别。我不知道,但这就是他在问题中所说的,无论如何,我认为你应该删除HAVING count(不同的cat\u rel.post\u id)>1
来自您的查询。lol@Andomar我刚看了一下代码,我发现简单的从类别中选择类别名称
会起作用,我不知道为什么我加入了这个表,我是个白痴distinct
适用于所有列,所以distinct cat\u name,post\u id
仍然会重复类别