Ini tidak dapat dilakukan, secara langsung, karena output dari pemilihan tak terbatas dalam prosedur tersimpan adalah kumpulan hasil yang dikirim ke klien, tetapi secara teknis bukan tabel.
Solusinya adalah membiarkan proc meletakkan data dalam tabel sementara setelah membuat tabel untuk Anda. Tabel ini hanya akan tersedia untuk koneksi Anda saat prosedur selesai. Ini tidak akan menyebabkan konflik jika orang lain menjalankan proc pada saat yang sama dan tidak akan terlihat oleh koneksi lain.
Tambahkan ini ke prosedur:
DROP TEMPORARY TABLE IF EXISTS foo;
CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;
Ketika prosedur Anda selesai, SELECT * FROM foo;
akan memberi Anda apa yang akan Anda dapatkan dari proc. Anda dapat bergabung dengannya seperti tabel apa pun.
Setelah selesai, jatuhkan, atau akan hilang dengan sendirinya saat Anda memutuskan sambungan. Jika Anda menjalankan proc lagi, proc tersebut akan dihapus dan dibuat ulang.