我有一个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是按优先顺序返回语言列表的存储过程。目的是以用户的首选语言返回错误消息。
答案 0 :(得分:4)
我找到了可行的解决方案。在User_Language存储过程中,我创建了一个Temp表(称为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;