未知列错误
问题描述:
这个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变种
答
的问题是在使用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
你试图删除查询的不同部分,然后再测试它隔离问题?即用WHERE语句尝试它,然后在没有第二个JOIN等的情况下尝试它。 – Haroldo 2010-08-05 16:07:06
这里的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
我不羡慕你必须使用这样的令人难忘的列名称来处理数据库。这是匈牙利炖牛肉吗? – 2010-08-05 16:14:08