Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Linha de correspondência do Mysql EAV como valor da propriedade do campo ou da entidade


Você pode usar várias junções à esquerda para fazer isso.
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

Os valores que não possuem propriedades acabarão sendo nulos.

Este método também não precisa ter uma segunda consulta para obter as propriedades.

EDITAR Se você não deseja recuperar valores nulos, omita o left parte da left join .