Udfordringen her er, at du skal overføre disse værdier hentet fra et API-svar til din SQL-sætning som input og generere output ved dynamisk at skabe ingen sammenligninger baseret på inputtet.
Hvis jeg nu ville have kendt din backend-platform, end jeg ville have givet en mere passende løsning, men som jeg ikke ved med Node.js, vil min løsning kun indeholde nødvendige SQL-sætninger og den resterende del, du skal bruge. DIY.
Den første ting du skal gøre er at parse dette API-svar og gemme disse værdier i en datastruktur.
Opret nu en Temporary table
ind fra din Node.js
kode og gem disse inputværdier i denne tabel.
CREATE TEMPORARY TABLE Input (id INT, value INT);
Tilføj data fra den datastruktur til denne tabel.
Kør nu følgende forespørgsel, og du får, hvad du vil have:
SELECT skp.quest_id
FROM SKILL_PREREQUISITES skp
GROUP BY quest_id
HAVING COUNT(skp.quest_id) =
( SELECT COUNT(quest_id)
FROM Input i
JOIN SKILL_PREREQUISITES sp
ON sp.prerequisite_skill_id = i.id
AND sp.skill_value <= i.value
WHERE skp.quest_id = sp.quest_id
)