MySQL-在内部联接中使用存储过程的结果

MySQL-在内部联接中使用存储过程的结果,mysql,stored-procedures,Mysql,Stored Procedures,我有一个返回多行的MySQL存储过程。有没有办法在与另一个表的内部联接中使用此结果?我试过: SELECT ErrorMessage FROM ErrorMessage em INNER JOIN User_Language(pCompanyID, pUserID) l ON em.Language=l.LanguageID WHERE ErrorCode = pErrorCode ORDER BY l.LanguageOrder LIMIT 1; 在本例中,User_Language是

我有一个返回多行的MySQL存储过程。有没有办法在与另一个表的内部联接中使用此结果?我试过:

SELECT ErrorMessage FROM ErrorMessage em 
INNER JOIN User_Language(pCompanyID, pUserID) l ON em.Language=l.LanguageID 
WHERE ErrorCode = pErrorCode 
ORDER BY l.LanguageOrder LIMIT 1;

在本例中,User_Language是按首选顺序返回语言列表的存储过程。目的是以用户首选语言返回错误消息。

我找到了一个可行的解决方案。在User_Language存储过程中,我创建了一个临时表(称为UserLanguages),然后可以在内部联接中使用它

CALL User_Language(pCompanyID, pUserID);
SELECT ErrorMessage INTO vErrorMessage FROM ErrorMessage em
INNER JOIN UserLanguages l ON em.Language=l.LanguageID
WHERE ErrorCode = pErrorCode
ORDER BY l.LanguageOrder LIMIT 1;

我不知道MYSQL可以返回并使用表。我玩过一些技巧,返回一个字符串(比如,'英语,西班牙语'),并使用如下内容进行连接:我不知道MYSQL可以返回并使用表。我玩过一些小把戏,返回一个字符串(比如,',English,西班牙语,'),并使用如下内容进行连接:在用户_语言(pCompanyID,pUserID)上连接ErrorMesage em,比如CONCAT(',',',em.Language',',%')),我需要考虑如何对结果进行排序。只是一个想法。