Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql-EAV-Übereinstimmungszeile als Eigenschaftswert des Felds oder der Entität

Dazu können Sie mehrere Linksverknüpfungen verwenden.

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

Werte, die keine Eigenschaften haben, werden am Ende null sein.

Bei dieser Methode benötigen Sie auch keine zweite Abfrage, um die Eigenschaften zu erhalten.

BEARBEITEN Wenn Sie keine Nullwerte abrufen möchten, lassen Sie left weg Teil des left join .