sql >> Databasteknik >  >> RDS >> Mysql

Mysql EAV matchar rad som fält eller enhets egenskapsvärde

Du kan använda flera vänsterkopplingar för att göra detta.

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

Värden som inte har egenskaper blir null.

Med den här metoden behöver du inte ha en andra fråga för att få egenskaperna heller.

REDIGERA Om du inte vill hämta nollvärden, utelämna sedan left en del av left join .



  1. Ändra kolumn i MySQL från int till dubbel?

  2. SQL Server-exekveringsplan — vad är det och hur hjälper det med prestandaproblem?

  3. Fyll MySQL registrerar en-till-många relaterade tabeller i en åtgärd

  4. Ansök ORDER BY på en UNION (Mysql)