Usually EXISTS
performs better:
SELECT p.*
FROM posts p
WHERE EXISTS (SELECT 1 FROM tag t WHERE t.post_id = p.id AND t.tag IN ('tag1', 'tag2'))
Or you could do it with an INNER JOIN
:
SELECT DISTINCT p.*
FROM posts p INNER JOIN tag t
ON t.post_id = p.id
WHERE t.tag IN ('tag1', 'tag2')
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…