2017-01-09 38 views
1

簡化我的版本問題上「對條款」未知列:MySQL的:對於重命名的列

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

它不知道Test1的加入。我可以讓連接理解Test1等主要字段列表中的值嗎?

回答

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 
+0

我甚至沒有考慮將計算移動到JOIN,但沒有理由不。謝謝。 – Miklos

0

你可以用像第一查詢這個:

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

你也可以使用變量:

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