Dette er et nøjagtigt relationelt opdelingsproblem.
I SQL Server en godt præsterende
metode (under forudsætning af en unik begrænsning på post_id,tag
) er
SELECT post_id
FROM post_tags
GROUP BY post_id
HAVING MIN(CASE
WHEN Keyword IN ( 'clever', 'interesting' ) THEN 1
ELSE 0
END) = 1
AND SUM(CASE
WHEN Keyword IN ( 'clever', 'interesting' ) THEN 1
ELSE 0
END) = 2
Så jeg vil ikke udelukke ideen om at bruge GROUP_CONCAT
i HAVING
i stedet.
HAVING GROUP_CONCAT(DISTINCT Keyword ORDER BY Keyword) = 'clever,interesting'