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

SQL-forespørgsel til betinget hentning af poster baseret på en nøgleværdiliste

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
                      )

Demoviolin



  1. Hvorfor opretter postgres ikke databasen?

  2. Hvordan eksporterer man arabisk tekst fra MySQL-databasen til csv ved hjælp af tudse til MySQL?

  3. 3 måder at få dagens navn fra en dato i MariaDB

  4. Hvordan HOUR() virker i MariaDB