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

Cột động trong câu lệnh SQL Select, giữ các giá trị không xác định

Bạn đang rất gần. Bạn cần tham gia bảng khóa / giá trị của mình itemproperties một lần cho mỗi khóa (thuộc tính) riêng biệt mà bạn cần truy xuất. Vấn đề là, bạn cần sử dụng LEFT JOIN . Đồng bằng bên trong JOIN loại bỏ hàng đầu ra khi tiêu chí kết hợp không được đáp ứng.

Hãy thử điều này.

SELECT i.ID as ItemID, i.Name as ItemName, 
       p1.Value AS Color, p2.Value AS Speed, p3.Value AS Price
  FROM items as i
  LEFT JOIN itemproperties AS p1 ON (i.ID=p1.ItemID) AND (p1.Name = 'Color')
  LEFT JOIN itemproperties AS p2 ON (i.ID=p2.ItemID) AND (p2.Name = 'Speed')
  LEFT JOIN itemproperties AS p3 ON (i.ID=p3.ItemID) AND (p3.Name = 'Price')

Các biểu thức chọn Name giá trị (z.B. p3.Name = 'Price' ) vào ON của bạn chứ không phải là WHERE của bạn mệnh đề.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql như tăng hiệu suất

  2. Cách chọn giá trị tối thiểu duy nhất từ ​​nhiều bảng hơn

  3. Menu đệ quy phân cấp với PHP / MySQL

  4. TẢI THÔNG TIN DỮ LIỆU với các biến

  5. MySQL - Thay đổi giá trị trường sau X phút không hoạt động