Mysql
 sql >> Database >  >> RDS >> Mysql

Query SQL per recuperare condizionalmente i record in base a un elenco di valori chiave

La sfida qui è che devi passare questi valori recuperati da una risposta API alla tua istruzione SQL come input e generare output creando dinamicamente nessun confronto in base all'input.

Ora, se avessi familiarità con la tua piattaforma back-end di quanto avrei fornito una soluzione più adatta, ma poiché non sono a conoscenza di Node.js, la mia soluzione includerà solo le istruzioni SQL richieste e la parte rimanente di cui hai bisogno Fai da te.

La prima cosa che devi fare è analizzare questa risposta API e archiviare questi valori in una struttura dati.

Ora crea una Temporary table dal tuo Node.js codificare e memorizzare questi valori di input in questa tabella.

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

Aggiungi i dati da quella struttura di dati a questa tabella.

Ora, esegui la seguente query e otterrai ciò che desideri:

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
                      )

Dimostrazione di violino