2011-08-28 129 views
0

我有MySQL查詢問題,我卡住了...問題與MySQL查詢

我交了許多標籤,我想,讓用戶獲得與choosen標籤的帖子。我像這樣在表格中存儲關於標籤的信息:

Tag_warp(
id_tag_wrap, 
id_tag, 
id_post) 

我需要選擇具有選定標籤的不同帖子。你有想法如何做到這一點?如果我要求:id_tag = "5" AND id_tag= "2"我沒有結果(這是顯而易見的),如果我要求:id_tag = "5" OR id_tag= "2"我有id_post結果有2或5,但我只需要這些帖子都有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

你可以這樣說:

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

這將返回有兩個標籤2和5的帖子

+0

如果沒有'count(distinct ...)',它也會返回標籤2兩次的帖子 – Andomar

+0

我假設一個帖子不能有兩次相同的標籤 – arnaud576875

+0

''(tag_id,post_id)''這將工作正常 – Andomar