Mysql
 sql >> Database >  >> RDS >> Mysql

Riga di corrispondenza Mysql EAV come valore della proprietà del campo o dell'entità

Puoi utilizzare più join a sinistra per farlo.

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

I valori che non hanno proprietà finiranno per essere nulli.

Con questo metodo non devi nemmeno avere una seconda query per ottenere le proprietà.

MODIFICA Se non vuoi recuperare valori nulli, ometti il ​​left parte del left join .