sql >> Base de Datos >  >> RDS >> Mysql

Consulta SQL para recuperar registros de forma condicional en función de una lista de valores clave

El desafío aquí es que debe pasar estos valores recuperados de una respuesta API a su declaración SQL como entrada y generar resultados creando dinámicamente ninguna comparación basada en la entrada.

Ahora, si me hubiera familiarizado con su plataforma de back-end, le habría dado una solución más adecuada, pero como no sé con Node.js, mi solución solo incluirá las declaraciones SQL requeridas y la parte restante que necesita para Bricolaje.

Lo primero que debe hacer es analizar esta respuesta API y almacenar estos valores en una estructura de datos.

Ahora, crea una Temporary table desde su Node.js código y almacene estos valores de entrada en esta tabla.

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

Agregue datos de esa estructura de datos a esta tabla.

Ahora, ejecute la siguiente consulta y obtendrá lo que desea:

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
                      )

Demostración de violín