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