Mysql 如何使用case语句来确定左连接哪个字段
我有一个查询,在给定字段等于变量的条件下,需要能够在正确的位置左键联接字段 比如:Mysql 如何使用case语句来确定左连接哪个字段,mysql,left-join,case,Mysql,Left Join,Case,我有一个查询,在给定字段等于变量的条件下,需要能够在正确的位置左键联接字段 比如: CASE WHEN challenges.userID = $var LEFT JOIN challengesRead ON challenges.userID = challengesRead.userID CASE WHEN challenges.opponentID = $var LEFT JOIN challengesRead ON challenges.opponentID = challengesRe
CASE WHEN challenges.userID = $var
LEFT JOIN challengesRead ON challenges.userID = challengesRead.userID
CASE WHEN challenges.opponentID = $var
LEFT JOIN challengesRead ON challenges.opponentID = challengesRead.userID
我认为我的思路是对的,但我不确定如何把这个问题组合起来。
谢谢像这样的东西可能有用
LEFT JOIN challengesRead
ON challenges.userID = CASE
WHEN challenges.userID = $var THEN challengesRead.userID
WHEN challenges.opponentID = $var THEN challenges.opponen END
看来你想要这个:
LEFT JOIN challengesRead
ON CASE WHEN challenges.userID = $var
THEN challenges.userID
WHEN challenges.opponentID = $var
THEN challenges.opponentID
END = challengesRead.userID
可简化为:
LEFT JOIN challengesRead
ON $var = challengesRead.userID
AND ( challenges.userID = $var
OR challenges.opponentID = $var
)