Fra*_*bel 6 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;
Run Code Online (Sandbox Code Playgroud)
在此示例中,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;
Run Code Online (Sandbox Code Playgroud)