2014-07-14 4 views
1

)이 category_post_tag 피벗 테이블이 있습니다.MySQL - 태그가있는 모든 게시물 얻기 (

예를 들어

:

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는 항상 하나의 게시물에 대해 하나의 태그 만 갖습니다.

하나의 게시물에 속한 모든 태그를 되 찾을 수있는 방법이 있습니까? 여전히 별개의 게시물 배열이 있습니까?

+0

GROUP_CONCAT() 그냥 유휴 호기심에서, 왜 이렇게할까요 사용? – Strawberry

+0

@Strawberry이 블로그 엔진에 범주, 게시물 및 태그가 연결되는 방식입니다. –

+0

괜찮습니다. 나는 왜 당신이이 형식으로 결과를 원하는지에 대해서 확실히 알지 못한다. 아니면 원하는 결과 세트가 어떤 모양인지 이해하지 못할 수도 있습니다. 내 마음과 대략적인 근사값으로 SQL에 GROUP_CONCAT (또는 실제로 CONCAT)가 정답 인 것은 문제가되지 않습니다. 어쩌면 그건 나 뿐이야. – Strawberry

답변

1

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

고마워요, 그게 좋았어요. 좋은 하루 되세요. 한계가 끝나자 마자 대답을 수락합니다. –

관련 문제