2013-06-26 40 views
6

#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'Unknown cột tại khoản trật tự

Tại sao tôi nhận được lỗi trên bằng tuyên bố dưới nó hoạt động tốt mà không có sự p trong báo cáo kết quả và tôi không sử dụng một khoản trật tự?

SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2 
+2

bạn cần sử dụng 'ALIAS' thay vì tablename vì bạn đã xác định bí danh trên bảng. ví dụ: 'p.manufacturer_id' –

+0

@JW 웃 Tôi đã thử' SELECT * FROM 'default_ps_products' p WHERE p.manufacturer_id = 2' vẫn là lỗi tương tự –

+0

Tôi không thể thấy lý do bạn nhận được thông báo này mà không cần thực tế 'ORDER BY'. Bạn có chắc đây là truy vấn thực thi khi bạn gặp lỗi không? –

Trả lời

4

Vì bạn gửi một truy vấn một phần này là không rõ ràng ngay từ đầu, nhưng full query bạn làm cho nó rõ ràng.

SELECT * 
FROM default_ps_products 
WHERE manufacturer_id=2 
ORDER BY `default_ps_products`.`manufacturer_id` ASC 
LIMIT 0, 30 

Khi bạn thêm một bí danh để default_ps_products bảng trong lựa chọn, bạn có thể không chọn lọc sử dụng bí danh chỉ trong mệnh đề WHERE, bạn cũng sẽ cần phải thay đổi ORDER BY sử dụng bí danh tương tự. Truy vấn đầy đủ nên nói cách khác là;

SELECT * 
FROM default_ps_products p 
WHERE p.manufacturer_id=2 
ORDER BY p.`manufacturer_id` ASC 
LIMIT 0, 30 
1

Truy vấn của bạn vẫn ổn. không có lỗi khi tôi chạy truy vấn này. không có gì sai với truy vấn.

SELECT * FROM default_ps_products AS p WHERE p.manufacturer_id = 2 nó làm việc tốt :)

9

Để giải quyết điều này sử dụng SELECT p.* FROM thay vì SELECT * FROM.

Lý do là phpMyAdmin đang thêm một ORDER BY vào truy vấn của bạn cho cột đầu tiên trong lưới kết quả. Vì bí danh, mã thực hiện điều này không thành công.

Sự cố này tái tạo trên phpMyAdmin 4.0.6. Tôi không biết trạng thái mới nhất 4.2.5

+0

Bạn có thể gặp lỗi này ngay cả khi không có mệnh đề ORDER BY. Câu trả lời này giải quyết vấn đề đó; Câu trả lời của Isaksson thì không. –

1

Mở phpmyadmin của bạn. Nhấp vào cơ sở dữ liệu đã chọn của bạn. Bây giờ bạn có một danh sách tất cả các bảng ở bên phải. Nhấp vào cấu trúc của bảng default_ps_products. Bây giờ bạn thấy một cấu trúc của nó. Bây giờ bấm vào tab SQL và thực hiện truy vấn như 'SELECT * FROM default_ps_products ORDER BY'. Khi bạn thực hiện truy vấn này, Bây giờ, hãy giải quyết vấn đề của bạn.

Các vấn đề liên quan