在以下查询中我得到#1054 - Unknown column 'zzAir_Reservations_201201.id' in 'where clause'
。那是为什么?
SELECT `id`
FROM
`reservations` AS `res`
WHERE
`reservations`.`id`='0'
这是一个简化的查询,原始查询要复杂得多。
这在过去的某个时候有效,但我在过去几周内更新了mysql服务器,我认为这是一个新的“功能”
我知道如果没有使用别名就没有意义,但是限制原始表的使用并没有意义,因为我别名它。我在手册中找不到任何参考资料
答案 0 :(得分:1)
您已为表格创建alias
,并使用表格的原始名称,这就是生成错误(Error Code: 1054
)的原因。
而不是
SELECT `id`
FROM
`reservations` AS `res`
WHERE
`reservations`.`id`='0'
使用
SELECT `id`
FROM
`reservations` AS `res`
WHERE
res.`id`='0'
答案 1 :(得分:-1)
我从PHP编写了大部分查询,而我常常不知道表名是什么。
所以我总是将它们别名为t1,t2等。然后我的WHERE子句总是使用t1.'a',t2.'a'等等一切正常。
e.g。
$query = "SELECT `$source_table`.`$category_field`, `$support_table`.`$subcategory_field` WHERE `$t1`.`$id_field` = `$t2`.`$id.field`;
或类似的东西。
希望你没有太多的疑问,因为听起来你的手上可能有一团糟。