Ответы пользователя по тегу MySQL
  • Как используя mySQL отфильтровать товары по EAV свойствам, если указано больше одного свойства?

    @goran1301 Автор вопроса
    веб программист
    ИТОГ

    Решил вот таким запросом
    SELECT p.*, po1.slug 'P1', po2.slug 'P2', prop1.slug 'S1', prop2.slug 'S2' 
     
    FROM products p       
     
    INNER JOIN products_parameters p2o1 ON p.id = p2o1.product_id
    INNER JOIN lists_items po1  ON po1.id = p2o1.list_item_id
    LEFT JOIN parameters prop1 ON prop1.id = p2o1.parameter_id
     
    INNER JOIN products_parameters p2o2 ON p.id = p2o2.product_id
    INNER JOIN lists_items po2  ON po2.id = p2o2.list_item_id
    LEFT JOIN parameters prop2 ON prop2.id = p2o2.parameter_id
    WHERE
    (`po1`.`slug` IN ('black', 'green') AND `prop1`.`slug` = 'tea-type') AND (`po2`.`slug`='biglist' AND `prop2`.`slug` = 'list-size')


    Не знаю насколько это корявый метод. Теперь буду работать над переносом этого кода в Yii2 видимо от ActiveQuery придется отказаться и формаировать через Query.
    Ответ написан
    1 комментарий
  • Как при использовании EAV сделать добавление полей по категориям?

    @goran1301
    веб программист
    Я делал так:
    Есть таблица с разделами, есть с товарами и есть со значениями свойств товаров.

    У товаров и свойств есть поле с id раздела, по которому они связаны. А в таблице со значениями свойств товаров есть поля для id товара и id свойства.

    Позже добавил ещё таблицу со списками и значениями списков, чтобы можно было выбирать значения из заготовленных. В итоге значения свойств товаров стали ссылаться ещё и на значения списков.
    Ответ написан
    Комментировать