#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'
未知列
爲什麼會收到與該語句的上述錯誤以下正常工作而不在聲明中p
,我沒有使用順序條款?
SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2
#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'
未知列
爲什麼會收到與該語句的上述錯誤以下正常工作而不在聲明中p
,我沒有使用順序條款?
SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2
既然你張貼了部分查詢這不是明顯從一開始,但是你full query清楚。
SELECT *
FROM default_ps_products
WHERE manufacturer_id=2
ORDER BY `default_ps_products`.`manufacturer_id` ASC
LIMIT 0, 30
當您在選擇添加一個別名default_ps_products
表,你不能只選擇性地在WHERE
子句中使用別名,你還需要改變ORDER BY
使用相同的別名。換句話說,完整的查詢應該是;
SELECT *
FROM default_ps_products p
WHERE p.manufacturer_id=2
ORDER BY p.`manufacturer_id` ASC
LIMIT 0, 30
您的查詢完好。當我運行這個查詢時沒有任何錯誤。查詢沒有任何問題。
SELECT * FROM default_ps_products AS p WHERE p.manufacturer_id = 2
它做工精細:)
要解決此問題,請使用SELECT p.* FROM
而不是SELECT * FROM
。
原因是phpMyAdmin正在將ORDER BY添加到結果網格中第一列的查詢中。由於別名,執行此操作的代碼失敗。
此問題在phpMyAdmin 4.0.6上重現。我不知道最新的狀態4.2.5
即使沒有ORDER BY子句,也可以得到此錯誤。這個答案解決了這個問題。 Isaksson的答案不是。 –
打開你的phpmyadmin。點擊你選擇的數據庫。現在你有一張右側所有表格的列表。點擊default_ps_products
表的結構。現在你看到它的結構。現在單擊SQL選項卡並執行查詢,如'SELECT * FROM default_ps_products ORDER BY'。 一旦你執行這個查詢,現在解決你的問題。
您需要使用'ALIAS'而不是表名,因爲您已經在表上定義了一個別名。例如'p.manufacturer_id' –
@JW웃我試過了'SELECT * FROM'default_ps_products' p WHERE p.manufacturer_id = 2'仍然出現同樣的錯誤 –
我看不到一個原因, 'ORDER BY'。你確定這是當你得到錯誤時執行的實際查詢嗎? –