显示类别而不重复具有帖子的每个类别

时间:2012-04-21 13:50:02

标签: php mysql sql

我有类别表格:

cat_id
cat_name

比类别 - 帖子关系表 cat_rel

cat_rel_id
cat_id
post_id

帖子表格:

post_id
post_title
post_content

现在我在所有这些表中都有数据,我需要提取类别而不重复那些有超过1个帖子的类别。如果它有超过1个帖子,我会以某种方式重复类别,例如。类别如下:

php,python,c ++,java,ruby

如果我在PHP下有2个帖子,我会得到:

PHP 蟒蛇 PHP 的java

这是我运行的查询:

SELECT categories.cat_name, cat_rel.post_id 
FROM categories 
LEFT JOIN cat_rel ON cat_rel.cat_ID = categories.cat_ID

任何有关使这些类别不再重复的帮助,将不胜感激

3 个答案:

答案 0 :(得分:0)

使用DISTINCT

看看这里: SQL SELECT DISTINCT Statement

答案 1 :(得分:0)

这将列出具有多个帖子的类别:

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

答案 2 :(得分:0)

试试这个:

SELECT DISTINCT categories.cat_name, cat_rel.post_id 
FROM categories 
LEFT JOIN cat_rel ON cat_rel.cat_ID = categories.cat_ID