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

Cột không xác định MySQL trong mệnh đề ON

Không kết hợp kiểu ANSI-89 và kiểu ANSI-92. Chúng có mức độ ưu tiên khác nhau có thể dẫn đến các lỗi khó hiểu và đó là những gì đã xảy ra ở đây. Truy vấn của bạn đang được diễn giải như sau:

FROM property p, (
    propertygeometry pg
    JOIN shortlist sl ON sl.PropertyID = p.id AND sl.MemberID = 384216
    ...
)

Ở trên, các phép nối sử dụng từ khóa JOIN sẽ được đánh giá đầu tiên trước khi phép nối kiểu dấu phẩy thậm chí còn được xem xét. Tại thời điểm đó, bảng p chưa được khai báo.

Từ MySQL hướng dẫn sử dụng :

Tuy nhiên, mức độ ưu tiên của toán tử dấu phẩy ít hơn so với INNER JOIN, CROSS JOIN, LEFT JOIN, v.v. Nếu bạn kết hợp phép nối dấu phẩy với các loại phép nối khác khi có điều kiện nối, thì sẽ xảy ra lỗi ở dạng Cột không xác định 'col_name' trong 'trên mệnh đề' có thể xảy ra. Thông tin về cách xử lý vấn đề này được đưa ra sau trong phần này.

Tôi khuyên bạn nên luôn luôn sử dụng phép nối kiểu ANSI-92, tức là sử dụng từ khóa JOIN:

SELECT p.*,
    IF(COUNT(ms.PropertyID) > 0,1,0) AS Contacted,
    pm.MediaID,
    date_format(p.AvailableFrom, '%d %b %Y') AS 'AvailableFrom',
    astext(pg.Geometry) AS Geometry
FROM property p
    JOIN propertygeometry pg ON p.PropertyGeometryID = pg.id
    JOIN shortlist sl ON sl.PropertyID = p.id AND sl.MemberID = 384216
    LEFT JOIN message ms ON ms.PropertyID = p.id AND ms.SenderID = 384216
    LEFT JOIN property_media pm ON pm.PropertyID = p.id AND pm.IsPrimary = 1
WHERE p.paused = 0
GROUP BY p.id

Có liên quan:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sắp xếp tự nhiên trong MySQL

  2. MySQL - Lỗi kết nối - [MySQL] [ODBC 5.3 (w) Driver] Host ‘IP’ không được phép kết nối với máy chủ MySQL này

  3. Tuyên bố Sử dụng Ví dụ Tạo Bảng của JDBC

  4. PDO fetch:Nhóm tất cả các cặp khóa-giá trị vào mảng assoc

  5. Cách thiết lập cấu trúc chỉ mục ElasticSearch với nhiều liên kết thực thể