sql >> Base de Datos >  >> RDS >> Mysql

Fila de coincidencia Mysql EAV como valor de propiedad de campo o entidad

Puede usar varias uniones izquierdas para hacer esto.

SELECT 
    o.create_date,
    o.title,
    o.author,
    op1.value AS start_date,
    op2.value AS end_date,
    ...
FROM object o
LEFT JOIN object_properties op1 ON op1.object_id=o.object_id AND op1.type_id=1
LEFT JOIN object_properties op2 ON op2.object_id=o.object_id AND op2.type_id=2

Los valores que no tengan propiedades terminarán siendo nulos.

Este método tampoco tiene que tener una segunda consulta para obtener las propiedades.

EDITAR Si no desea recuperar valores nulos, omita el left parte de la left join .