未知列错误

问题描述:

这个SQL失败:未知列错误

select * from RRICallouts as r 
    JOIN LevelToCalloutsJT as lc on (`r.__kp_RecID` = `lc._kf_RecID~Callout`) 
    JOIN Levels as l ON (`lc._kf_RecID~Level` = `l.__kp_RecID`) 
    where `l.__kp_RecID` = 201006221644060009 

#1054 - Unknown column 'l.__kp_RecID' in 'where clause 

这工作:

select `__kp_RecID` from Levels as l ; 

在某些Linux变种

+0

你试图删除查询的不同部分,然后再测试它隔离问题?即用WHERE语句尝试它,然后在没有第二个JOIN等的情况下尝试它。 – Haroldo 2010-08-05 16:07:06

+0

这里的equivilent SQL查询是否也失败? SELECT * FROM RRICallouts为r,水平作为升 JOIN LevelToCalloutsJT如LC上(的r .__ kp_RecID' ='lc._kf_RecID〜Callout') 其中'升.__ kp_RecID' = 201006221644060009 AND 'lc._kf_RecID〜等级''''l .__ kp_RecID' – bot403 2010-08-05 16:08:06

+2

我不羡慕你必须使用这样的令人难忘的列名称来处理数据库。这是匈牙利炖牛肉吗? – 2010-08-05 16:14:08

的问题是在使用MySQL 5.0.77你的反应。

`r`.`__kp_RecID` 

...而不是:

`r.__kp_RecID` 

测试用例:你应该按如下方式使用它们

CREATE TABLE test (id int, value int); 
INSERT INTO test VALUES (1, 100); 

SELECT `t`.`id` FROM test AS t; 
+------+ 
| id | 
+------+ 
| 1 | 
+------+ 
1 row in set (0.00 sec) 

SELECT `t.id` FROM test AS t; 
ERROR 1054 (42S22): Unknown column 't.id' in 'field list' 
+2

反引起问题。非常感谢。列名真的很乱,但数据库名称(由主机提供)甚至更好 - 481986_G5ikr6eJy9wmxRm0 – andyknas 2010-08-05 16:37:25

+0

我也不羡慕你! – 2010-08-05 17:20:38