Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql EAV ред за съответствие като стойност на свойството на поле или обект

Можете да използвате няколко леви обединявания, за да направите това.

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

Стойности, които нямат свойства, в крайна сметка ще бъдат нулеви.

Този метод също не е необходимо да имате втора заявка, за да получите свойствата.

РЕДАКТИРАНЕ Ако не искате да извличате нулеви стойности, пропуснете left част от left join .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Деактивирайте ONLY_FULL_GROUP_BY

  2. Импортирайте данни от Excel в релационни таблици в MySQL

  3. SQL Вмъкване в таблицата на нови редове за всяко поле в същата таблица

  4. Използване на оператор IN за параметър на запаметена процедура SQL

  5. SQL:Намерете максималния запис за група