擬似コードから、(動的な)値のリストがSELECT
によって提供される別のリストのサブセットであるかどうかを確認したいと思います。 。はいの場合、テーブル全体が表示されます。そうでない場合、行は表示されません。
これを実現する方法は次のとおりです。
SELECT *
FROM tb_values
WHERE
( SELECT COUNT(DISTINCT value)
FROM tb_value
WHERE isgoodvalue = true
AND value IN (value1, value2, value3)
) = 3
更新 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