Utmaningen här är att du måste skicka dessa värden som hämtats från ett API-svar till din SQL-sats som indata och generera utdata genom att dynamiskt skapa inga jämförelser baserat på indata.
Om jag nu skulle ha bekantat mig med din back-end-plattform än jag skulle ha gett en mer passande lösning, men som jag inte vet med Node.js, kommer min lösning bara att innehålla nödvändiga SQL-satser och den återstående delen du behöver för att DIY.
Det första du behöver göra är att analysera detta API-svar och lagra dessa värden i en datastruktur.
Skapa nu en Temporary table
från din Node.js
kod och lagra dessa indatavärden i den här tabellen.
CREATE TEMPORARY TABLE Input (id INT, value INT);
Lägg till data från den datastrukturen till den här tabellen.
Kör nu följande fråga så får du vad du vill ha:
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
)