Mysql
 sql >> Base de données >  >> RDS >> Mysql

Opération de sous-ensemble MYSQL

D'après votre pseudo-code, je suppose que vous voulez vérifier si une liste (dynamique) de valeurs est un sous-ensemble d'une autre liste fournie par un SELECT . Si oui, alors un tableau entier sera affiché. Sinon, aucune ligne ne sera affichée.

Voici comment y parvenir :

SELECT *
FROM tb_values
WHERE 
    ( SELECT COUNT(DISTINCT value)
      FROM tb_value
      WHERE isgoodvalue = true
        AND value IN (value1, value2, value3)
    ) = 3

MISE À JOUR après l'explication d'OP :

SELECT *
FROM project
  JOIN 
    ( SELECT projectid
      FROM projectTagMap
      WHERE isgoodvalue = true
        AND tag IN (tag1, tag2, tag3)
      GROUP BY projectid
      HAVING COUNT(*) = 3
    ) AS ok
    ON ok.projectid = project.id