Mmmm... EAV's. Een van de vele redenen om EAV's (entity-attribute_value) te vermijden, is dat ze moeilijker te rapporteren en te doorzoeken zijn. Als de gewenste kenmerken echter van tevoren bekend zijn, kunt u iets doen als:
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
Nu heeft MySQL een GROUP_CONCAT waarmee je meerdere waarden voor hetzelfde attribuut in een lijst kunt samenvoegen als je dat toestaat (bijvoorbeeld als een entiteit meerdere Make-attributen kan hebben).