Вы не можете в основном. Можно только использовать зафиксированные псевдонимы, такие как:
using Foo = System.Collections.Generic.KeyValuePair<int, string>;
class C { Foo x; }
Их не существует в MySQL, не так ли? Просто используйте временную таблицу:
CREATE PROCEDURE my_proc () BEGIN
CREATE TEMPORARY TABLE TempTable (myid int, myfield varchar(100));
INSERT INTO TempTable SELECT tblid, tblfield FROM Table1;
/* Do some more stuff .... */
Из MySQL здесь
"Вы можете использовать ключевое слово TEMPORARY при создании таблицы. ВРЕМЕННОЕ таблица видна только текущему соединение, и сброшено автоматически при подключении закрыто. Это означает, что два разных соединения могут использовать те же временные имя таблицы без противоречия с друг друга или с существующим ВНЕВРЕМЕННЫЙ одноименный стол. (Существующая таблица скрыта до тех пор, пока временная таблица удаляется.) "
Возможно, временная таблица сделает то, что вы хотите.
CREATE TEMPORARY TABLE SalesSummary (
product_name VARCHAR(50) NOT NULL
, total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
, avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
, total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
) ENGINE=MEMORY;
INSERT INTO SalesSummary
(product_name, total_sales, avg_unit_price, total_units_sold)
SELECT
p.name
, SUM(oi.sales_amount)
, AVG(oi.unit_price)
, SUM(oi.quantity_sold)
FROM OrderItems oi
INNER JOIN Products p
ON oi.product_id = p.product_id
GROUP BY p.name;
/* Just output the table */
SELECT * FROM SalesSummary;
/* OK, get the highest selling product from the table */
SELECT product_name AS "Top Seller"
FROM SalesSummary
ORDER BY total_sales DESC
LIMIT 1;
/* Explicitly destroy the table */
DROP TABLE SalesSummary;
Из forge.mysql.com . См. Также часть временных таблиц в этой статье .