Nie można tego zrobić bezpośrednio, ponieważ wyjściem nieograniczonego wyboru w procedurze składowanej jest zestaw wyników wysłany do klienta, ale technicznie nie tabela.
Obejściem tego problemu jest umożliwienie proc umieszczeniu danych w tabeli tymczasowej po utworzeniu tabeli dla Ciebie. Ta tabela będzie dostępna tylko dla Twojego połączenia po zakończeniu procedury. Nie spowoduje to konfliktu, jeśli ktoś inny uruchomi proc w tym samym czasie i nie będzie widoczny dla żadnego innego połączenia.
Dodaj to do procedury:
DROP TEMPORARY TABLE IF EXISTS foo;
CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;
Po zakończeniu procedury SELECT * FROM foo;
da ci to, co byś otrzymał z proc. Możesz do niego dołączyć jak do każdego stołu.
Kiedy skończysz, upuść go, albo zniknie samo po rozłączeniu. Jeśli uruchomisz proc ponownie, zostanie on usunięty i odtworzony.