MySQL - 使用标签获取所有帖子(不同)

时间:2014-07-14 12:54:05

标签: mysql join group-by distinct pivot-table

我有这个category_post_tag数据透视表。

例如:

category_id         post_id         tag_ig
    1                   1              1
    1                   1              2
    1                   2              3
    1                   3              1
    1                   3              3
    2                   4              5

现在让我说我想抓一些属于我的第一个类别ID的帖子。

然后我会选择此数据透视表中包含category_id 1的所有帖子 我可能会将它们分组为post_id。

结果:

post_id: 1, 2, 3

我不知道这是否是最好的方法,但我认为它不是那么糟糕。

好的,但我的问题是当我想知道属于该帖子的每个标签时。

因此,如果我group_by post_id,我将始终只有一个标签到一个帖子。

有没有办法找回属于一个帖子的所有标签,并且仍然有一个独特的帖子数组?

1 个答案:

答案 0 :(得分:1)

使用GROUP_CONCAT()

select post_id, 
       group_concat(tag_id) as tag_ids
from category_post_tag 
where category_id = 1
group by post_id