2010-12-05 12 views

答えて

3

relational divisionです。

GROUP BYおよびCOUNTまたはダブル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

この試してみてください:あなたは、複数のタグ名を持っている場合は、「、( 'TAG1' 内のタグ名とタグ名= @youtagehereを置き換えると一致するようにしようとしている

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 

を「tag2」、「tag3」など)

関連する問題