在下面的查询中,我得到#1054 - Unknown column 'zzAir_Reservations_201201.id' in 'where clause'
。为什么?
SELECT `id`
FROM
`reservations` AS `res`
WHERE
`reservations`.`id`='0'
这是一个简化的查询,原来的查询要复杂得多。
这在过去的某个时候起到了作用,但我在过去几周更新了mysql服务器,我认为这是的一个新"功能"
我知道如果不使用别名,那么创建别名是没有意义的,但由于我对原始表进行了别名处理,因此限制其使用也没有意义。我在手册中找不到任何参考
您已经为表创建了一个alias
,并且使用了表的原始名称,这就是生成错误(Error Code: 1054
)的原因。
代替
SELECT `id`
FROM
`reservations` AS `res`
WHERE
`reservations`.`id`='0'
使用
SELECT `id`
FROM
`reservations` AS `res`
WHERE
res.`id`='0'
我大部分查询都是用PHP编写的,在那里我甚至不知道表名是什么
所以我总是把它们别名为t1、t2等。然后我的WHERE子句总是使用t1.a'、t2.a'等,一切都正常。
例如
$query = "SELECT `$source_table`.`$category_field`, `$support_table`.`$subcategory_field` WHERE `$t1`.`$id_field` = `$t2`.`$id.field`;
或者类似的东西。
希望你不会有太多的查询,因为听起来你手头可能会一团糟。