Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête SQL pour récupérer conditionnellement des enregistrements en fonction d'une liste de valeurs clés

Le défi ici est que vous devez transmettre ces valeurs extraites d'une réponse API à votre instruction SQL en tant qu'entrée et générer une sortie en créant dynamiquement aucune comparaison basée sur l'entrée.

Maintenant, si je connaissais votre plate-forme principale, je n'aurais pas donné de solution plus appropriée, mais comme je ne le sais pas avec Node.js, ma solution n'inclura que les instructions SQL requises et la partie restante dont vous avez besoin Bricolage.

La première chose que vous devez faire est d'analyser cette réponse API et de stocker ces valeurs dans une structure de données.

Maintenant, créez une Temporary table depuis votre Node.js coder et stocker ces valeurs d'entrée dans cette table.

  CREATE TEMPORARY TABLE Input (id INT, value INT);

Ajoutez les données de cette structure de données à cette table.

Maintenant, exécutez la requête suivante et vous obtiendrez ce que vous voulez :

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
                      )

Violon de démonstration