Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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:x27上的未知列;关于第'条;对于重命名列_Mysql_Left Join - Fatal编程技术网

MySQL:x27上的未知列;关于第'条;对于重命名列

MySQL:x27上的未知列;关于第'条;对于重命名列,mysql,left-join,Mysql,Left Join,我的问题的简化版本: SELECT 2 + 3 AS Test1 FROM TableA LEFT JOIN TableB ON TableB.Column1 = Test1 它不知道join中的Test1。我可以通过连接来理解主字段列表(如Test1)中的值吗?第一个选项是在上的中使用相同的聚合函数: SELECT 2 + 3 AS Test1 FROM TableA LEFT JOIN TableB ON TableB.Column1 = 2 + 3 或者,您可以使用内部选择查

我的问题的简化版本:

SELECT 
2 + 3 AS Test1
FROM TableA
LEFT JOIN TableB
ON TableB.Column1 = Test1

它不知道join中的Test1。我可以通过连接来理解主字段列表(如Test1)中的值吗?

第一个选项是在上的
中使用相同的聚合函数:

SELECT 
   2 + 3 AS Test1
FROM TableA
LEFT JOIN TableB
ON TableB.Column1 = 2 + 3
或者,您可以使用内部
选择
查询:

SELECT * 
FROM (
   SELECT 2 + 3 AS Test1
   FROM TableA) MyTable
LEFT JOIN TableB
ON TableB.Column1 = MyTable.Test1

您可以像这样包装第一个查询:

SELECT * /*(or whatever you need here)*/
  FROM (SELECT 2 + 3 AS Test1 FROM TableA) a
  LEFT JOIN TableB
    ON TableB.Column1 = a.Test1

您还可以使用变量:

  set @test1 = 1;
  SELECT 
  @test1 as Test1
  FROM category
  JOIN users on users.id = @test1

我甚至没有考虑将计算移动到联接,但没有理由不这样做。谢谢