Mysql SQL:无效操作:列“0”&引用;位置“U更新”&引用;不存在于t1、t2、未命名的_连接中;

Mysql SQL:无效操作:列“0”&引用;位置“U更新”&引用;不存在于t1、t2、未命名的_连接中;,mysql,sql,Mysql,Sql,我正在尝试将两列相乘t1.sales*1/t2。更改两个表table1和table2 表1 CREATE TABLE IF NOT EXISTS table1 ( sales VARCHAR(100) ENCODE lzo ,location VARCHAR(100) ENCODE lzo ,tax VARCHAR(100) ENCODE lzo ) 表2 CREATE TABLE IF NOT EXISTS table2 ( change_tim

我正在尝试将两列相乘
t1.sales*1/t2。更改两个表
table1
table2

表1

CREATE TABLE IF NOT EXISTS table1
(
    sales VARCHAR(100)   ENCODE lzo
    ,location VARCHAR(100)   ENCODE lzo
    ,tax VARCHAR(100)   ENCODE lzo
)
表2

CREATE TABLE IF NOT EXISTS table2
(

    change_time_1 DOUBLE PRECISION   ENCODE RAW
    ,change_time_2 DOUBLE PRECISION   ENCODE RAW

)
这就是我想做的

select  t1.sales, "location_update" = 
(CASE 
     WHEN t1.location =  'America' THEN convert(float,t1.sales )
     WHEN t1.location =  'Britain' THEN convert(float,t1.sales ) * 1/t2.change_time_2
     --ELSE 'Over $1000'
  END)
,t1.tax,t2.*
from table1 t1
left join table2 t2
on 1=1;

我得到了这个错误

Invalid operation: column "location_update" does not exist in t1, t2, unnamed_join;
我的乘法计算错了吗


如何修复此问题?

对于mysql,必须使用别名:

Select  t1.sales,  
(CASE 
     WHEN t1.location =  'America' THEN convert(t1.sales, float )
     WHEN t1.location =  'Britain' THEN convert(t1.sales, float ) * 1/t2.change_time_2

  END) as location_update
,t1.tax,t2.*
from table1 t1
left join table2 t2
on 1=1;

注意:函数使用不正确,正确的语法是
CONVERT(表达式、类型)

您似乎在使用SQL Server语法为
大小写
表达式指定别名。这在MySQL中不起作用。还有,为什么要在两个表之间进行交叉连接,这似乎毫无意义?这两个表是如何相互关联的?您试图将CASE表达式的结果与不存在的列进行比较-显然,这不起作用。这些表没有任何共同点或任何关系,这就是为什么我尝试使用交叉连接并将t1的一列与t2的另一列相乘。没有交叉连接,我该怎么做?另外,如果CASE表达式的结果不能被带到不存在的列,那么如何实现多应用程序使用别名
。。t1.销售、案例。。以“位置更新”结尾,…