MySQL:' on子句'上的未知列用于重命名的列

时间:2017-01-09 17:16:37

标签: mysql left-join

我的问题的简化版本:

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

它不知道连接中的Test1。我是否可以通过连接来理解主要字段列表中的值,例如Test1?

3 个答案:

答案 0 :(得分:2)

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

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

或者,您可以使用内部SELECT查询:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您还可以使用变量:

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