Това не може да бъде направено директно, тъй като изходът от неограничен избор в съхранена процедура е набор от резултати, изпратен на клиента, но технически не е таблица.
Заобиколното решение е да позволите на процедурата да постави данните във временна таблица, след като създаде таблицата за вас. Тази таблица ще бъде достъпна само за вашата връзка, когато процедурата приключи. Това няма да предизвика конфликт, ако някой друг стартира процедурата по същото време и няма да бъде видимо за друга връзка.
Добавете това към процедурата:
DROP TEMPORARY TABLE IF EXISTS foo;
CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;
Когато вашата процедура приключи, SELECT * FROM foo;
ще ви даде това, което бихте получили от процедурата. Можете да се присъедините към нея почти като всяка маса.
Когато приключите, пуснете го или ще изчезне сам, когато прекъснете връзката. Ако стартирате процедурата отново, тя ще бъде премахната и създадена отново.