#mysql #subquery
#mysql #подзапрос
Вопрос:
У меня есть 10 с лишним запросов select. Во всех запросах мне нужно использовать общий подзапрос. Поэтому для повторного использования я подумал о том, чтобы поместить подзапрос в переменную и использовать его в других запросах select. Ниже приведен пример кода, который я пытаюсь, но он не работает.
declare querySelect varchar(1000);
set querySelect="SELECT Id from orgs where orgType =5";
select * from organisation where Id in (select querySelect);
Комментарии:
1. Почему у вас 10 запросов?
Ответ №1:
Одним из вариантов здесь было бы создать представление:
CREATE VIEW orgView AS
SELECT Id FROM orgs WHERE orgType = 5;
Затем выберите из этого представления в своих последующих запросах, например
SELECT * FROM organisation WHERE Id IN (SELECT Id FROM orgView);
Ответ №2:
Вы можете использовать prepare statement
set @querySelect="SELECT Id from orgs where orgType =5";
SET @sql = CONCAT("select * from organisation where Id in ( ",@querySelect," )");
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;