固有の制約がない場合は、次を試してください。
SELECT post_id
FROM tags
WHERE tag_id = 1 OR tag_id = 3
GROUP BY post_id
HAVING count(DISTINCT tag_id) = 2;
または、このHAVING
を使用してください 2つのtag_id
のみを検出しようとする場合の句 値:
HAVING MIN(tag_id) <> MAX(tag_id)
post_idとtag_idの両方に一意の制約がある場合、これも機能するはずです:
SELECT post_id
FROM tags
WHERE tag_id = 1 OR tag_id = 3
GROUP BY post_id
HAVING count(*) = 2;