Mmmm ... EAV. Một trong nhiều lý do để tránh EAV (giá trị_thực thể-thuộc tính) là chúng khó báo cáo và truy vấn hơn. Tuy nhiên, nếu các thuộc tính bạn muốn được biết trước, bạn có thể làm như sau:
Select id
, Min( Case When name = 'Make' Then attribute_value End ) As Make
, Min( Case When name = 'Year' Then attribute_value End ) As Year
, Min( Case When name = 'Type' Then attribute_value End ) As Type
, Min( Case When name = 'Axles' Then attribute_value End ) As Axles
, Min( Case When name = 'Size' Then attribute_value End ) As Size
, Min( Case When name = 'Frame' Then attribute_value End ) As Frame
, ...
From attributes
Where name In('Make','Year','Type','Axles','Size','Frame',....)
Group By id
Bây giờ, MySQL, có GROUP_CONCAT sẽ cho phép bạn nối nhiều giá trị cho cùng một thuộc tính vào một danh sách nếu bạn cho phép điều đó (ví dụ:nếu một thực thể có thể có nhiều thuộc tính Make).