usdglander
@usdglander
Yipee-ki-yay

Как использовать результат хранимой процедуры в запросе?

Добрый день. Мой вопрос абсолютно нубский, но не могу найти ответ. Буду рад если ткнёте носом в нужный раздел документации.
Есть база в которой есть хранимая процедура.
CREATE DEFINER=`root`@`localhost` PROCEDURE `enum_id`(IN `start_id` INT, IN `end_id` INT) 
	NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER 
BEGIN 
	DECLARE current_id INT; 
	create temporary table id_list ( 
		`id` INT NOT NULL 
	); 
	
	SET current_id = start_id; 
	WHILE current_id <= end_id DO 
		INSERT INTO id_list (`id`) VALUES (current_id); 
		SET current_id = current_id + 1; 
	END WHILE; 
	
	select * from id_list; 
END

Зразу оговорюсь, пример академический и к реальности никакого отношения не имеет. В реале процедурка сложнее, но суть та же...
Возможно ли использовать результат работы этой процедуры (список id) в запросе, чтобы джойнить к этой таблице записи из других таблиц?
Что то типа:
SELECT * FROM (`enum_id`(0, 100)) `t` JOIN `enity` ON `t`.`id`=`entity`.`id`;

И если можно, то как? Заранее спасибо за ответы.
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
@Fortop
Tech/Team lead
Сохранять результаты во временную таблицу и выполнять join с ней
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А смысл? То же самое безо всяких процедур:
SELECT * 
  FROM `entity`
  WHERE `entity_id` >= 0 AND `entity_id` >= 100
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы