Uit je pseudo-code neem ik aan dat je wilt controleren of een (dynamische) lijst met waarden een subset is van een andere lijst die wordt geleverd door een SELECT
. Zo ja, dan wordt een hele tabel getoond. Zo niet, dan worden er geen rijen weergegeven.
Zo bereik je dat:
SELECT *
FROM tb_values
WHERE
( SELECT COUNT(DISTINCT value)
FROM tb_value
WHERE isgoodvalue = true
AND value IN (value1, value2, value3)
) = 3
GE-UPDATE na de uitleg van 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