#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'
为什么我在下面的语句中得到上述错误它p在没有声明的情况下工作正常并且我没有使用订单子句?
SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2
Run Code Online (Sandbox Code Playgroud)
小智 10
要解决这个问题SELECT p.* FROM而不是SELECT * FROM.
原因是phpMyAdmin正在为查询中的结果网格中的第一列添加ORDER BY.由于别名,执行此操作的代码失败.
此问题在phpMyAdmin 4.0.6上重现.我不知道最新4.2.5的状态
由于您发布了部分查询,因此从一开始就并不明显,但是完整的查询可以使您清楚。
SELECT *
FROM default_ps_products
WHERE manufacturer_id=2
ORDER BY `default_ps_products`.`manufacturer_id` ASC
LIMIT 0, 30
Run Code Online (Sandbox Code Playgroud)
default_ps_products在select中向表添加别名时,不能仅在WHERE子句中有选择地使用别名,还需要更改,ORDER BY以使用相同的别名。换句话说,完整查询应为;
SELECT *
FROM default_ps_products p
WHERE p.manufacturer_id=2
ORDER BY p.`manufacturer_id` ASC
LIMIT 0, 30
Run Code Online (Sandbox Code Playgroud)