Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mysql ... trong đó mệnh đề không rõ ràng

Lỗi bạn gặp phải cho bạn biết rằng cột CategoryID trong WHERE của bạn mệnh đề không rõ ràng, điều đó có nghĩa là hệ thống gặp sự cố khi xác định cột thích hợp vì có nhiều CategoryID cột.

Để khắc phục sự cố này, hãy sử dụng bí danh để chỉ định cột nào bạn muốn sử dụng cho WHERE của mình mệnh đề:

SELECT cat2.CategoryID AS CategoryID
    ,cat2.Name AS CategoryName
    ,COUNT(p.ProductID) AS CountProducts
FROM Category AS cat
INNER JOIN Category AS cat2 ON cat2.ParrentCategoryID = cat.CategoryID
INNER JOIN Products AS p ON p.CategoryID = cat2.CategoryID
WHERE cat.CategoryID = '876'
GROUP BY cat2.CategoryID, cat2.Name
ORDER BY cat2.Name

Tôi cũng đã thay đổi một chút truy vấn để nhận được kết quả tương tự nhưng thay vì sử dụng kết hợp LEFT JOIN + IN mệnh đề + truy vấn phụ, tôi đã sử dụng INNER JOIN Với truy vấn này, bạn chỉ cần xác định CategoryID mong muốn của mình một lần và nó sẽ tự động nhận mọi danh mục con.

Tôi không chắc rằng truy vấn của bạn chạy chính xác vì bạn đang sử dụng COUNT chức năng mà không cần nhóm kết quả theo CategoryID ...

Hy vọng điều này sẽ giúp bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển một số thành một từ trong Mysql

  2. Nhận kiểu của một biến trong MySQL

  3. Tại sao Dữ liệu Ứng dụng Khảo sát Django SessionWizardView của tôi không hiển thị ở định dạng có thể sử dụng trong Cơ sở dữ liệu MySQL của tôi?

  4. Đọc trang tính XLSX để cấp bảng MySQL bằng PHPExcel

  5. CHIỀU DÀI MYSQL CONCAT MAX