Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL заявка за условно извличане на записи въз основа на списък с ключови стойности

Предизвикателството тук е, че трябва да предадете тези стойности, извлечени от отговор на API, към вашия SQL израз като вход и да генерирате изход чрез динамично създаване на не сравнения въз основа на входа.

Сега, ако щях да се запозная с вашата back-end платформа, отколкото бих дал по-подходящо решение, но тъй като не съм наясно с Node.js, моето решение ще включва само необходимите SQL изрази и останалата част, която трябва да Направи си сам.

Първото нещо, което трябва да направите, е да анализирате този отговор на API и да съхраните тези стойности в структура от данни.

Сега създайте Temporary table от вашия Node.js код и съхранете тези входни стойности в тази таблица.

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

Добавете данни от тази структура от данни към тази таблица.

Сега изпълнете следната заявка и ще получите това, което искате:

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
                      )

Demo Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UTC_TIMESTAMP() Примери – MySQL

  2. Sequelize:многократна клауза where

  3. MySQL:Получаване на начална и крайна времева марка за всеки ден

  4. Как да декларирам променлива в MySQL?

  5. Как да изберете само име на поле, когато използвате заявка за показване на колони в mysql