Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用case语句来确定左连接哪个字段_Mysql_Left Join_Case - Fatal编程技术网

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
      )