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

MySQL - Using the result of a Stored Procedure in an Inner Join

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

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 是存储过程,return 是按优先顺序排列的语言列表。目的是 return 以用户首选语言显示错误消息。

我找到了可行的解决方案。在 User_Language 存储过程中,我创建了一个 Temp table(称为 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;