2010-12-05 43 views

回答

3

這是relational division

使用GROUP BYCOUNT或雙NOT EXISTS

第一種方法的例子是。

SELECT pt.Post_id, p.Post_Text 
FROM Post_Tags pt 
JOIN Posts p ON p.Post_id = pt.Post_id 
WHERE pt.Tag_id IN (1,2,3) 
GROUP BY pt.Post_id 
HAVING COUNT(DISTINCT pt.Tag_id) = 3 
0

試試這個:

select * from posts where post_id in 
(select post_id from post_tags pt join tags t on pt.tag_id = t.tag_id where tag_name = @yourtaghere) 

或...

select 
p.* 
from 
posts p join 
post_tags pt on p.post_id = pt.post_id join 
tags t on t.tag_id = pt.tag_id 
where 
t.tag_name = @yourtaghere 

如果你想匹配TAG_NAME取代TAG_NAME = @youtagehere在( 'TAG1' 多標記名,」 tag2','tag3'等)