sql >> Database teknologi >  >> RDS >> Mysql

Forespørgsel for at finde indlæg med et nøjagtigt sæt tags (mange-til-mange forhold)

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'


  1. Tilslutning til lokal SQL Server-database ved hjælp af C#

  2. Undgå JTextField setText-gentagelse rundt om i programmet

  3. Grundlæggende Oracle Trigger revisionstabel

  4. Mysql underforespørgsel resulterer i where klausul