2011-08-28 4 views
0

mysql 쿼리에 문제가있어서 붙어 있어요 ...mysql 쿼리에 문제가 발생했습니다

많은 태그가있는 게시물이 있는데 사용자가 선택한 태그를 사용하여 게시물을 얻도록하고 싶습니다. 다음과 같이 태그에 대한 정보를 저장합니다 :

Tag_warp(
id_tag_wrap, 
id_tag, 
id_post) 

선택한 태그가있는 고유 게시물을 선택해야합니다. 그것을 만드는 방법을 알고 있습니까? 만약 내가 물어 보면 : id_tag = "5" AND id_tag= "2" 내가 물어 보면 아무런 결과가 없다. (확실하다.) id_tag = "5" OR id_tag= "2" 2 개 또는 5 개의 결과를 가진 id_post가 있지만, id_tag가 모두있는 게시물 만 있으면된다.

어떤 조언이 필요합니까?

답변

3

각 게시물 모두 태그가 group by 후, 수요와 수 :

select id_post 
from tag_warp 
where id_tag in (2,5) 
group by 
     id_post 
having count(distinct id_tag) = 2 
+0

감사합니다. – baranq

0

당신은 이런 식으로 작업을 수행 할 수 있습니다이 두 태그 (2) 및 (5)이 게시물을 반환합니다

SELECT * FROM Tag_warp 
WHERE tag_id IN (2, 5) 
GROUP BY post_id 
HAVING COUNT(post_id) = 2 

+0

'count (distinct ...)'가 없으면 태그 2가 두 번있는 게시물도 반환됩니다 – Andomar

+0

게시물에 두 번 같은 태그가있을 수 없다고 가정했습니다 – arnaud576875

+0

'(tag_id, post_id) 이게 잘 작동합니다. – Andomar

관련 문제