sql >> Database >  >> RDS >> Mysql

Mysql EAV komt overeen met rij als eigenschapswaarde van veld of entiteit

Je kunt hiervoor meerdere left joins gebruiken.

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

Waarden die geen eigenschappen hebben, worden null.

Met deze methode hoeft u ook geen tweede zoekopdracht te hebben om de eigenschappen te krijgen.

BEWERKEN Als u geen null-waarden wilt ophalen, laat dan de left . weg onderdeel van de left join .



  1. Hoe slechts één kolom van de sql-tabel per csv-bestand bij te werken?

  2. Een tekenreeks converteren naar een numerieke waarde in PostgreSQL

  3. MySQL Hulp nodig bij het definiëren van SQL om ongewenste rijen te verwijderen

  4. MYSQL if statement vraag