Операции над множествами в DBIx::Class

Каков наилучший способ выполнения операций над множествами с использованием DBIx::Class? Я видел, что одним из решений было бы создание источника результатов на основе моего запроса, но мои условия будут определены пользователем, и я не знаю, будет ли лучший ответ создать источник результатов на лету.

В основном мне нужно перевести этот тип запроса в DBIC, где code, attr_name а также value определяется пользователем:

SELECT pid FROM product WHERE code = 48
INTERSECT
(
  ( SELECT pid FROM attr WHERE attr_name = 'color' AND value = 'blue'
    INTERSECT
    SELECT pid FROM attr WHERE attr_name = 'size' AND value = 'big'
  )
  UNION
  ( SELECT pid FROM attr WHERE attr_name = 'color' AND value = 'green'
    INTERSECT
    SELECT pid FROM attr WHERE attr_name = 'size' AND value = 'small'
  )
)

1 ответ

Может ли DBIx::Class::Helper::ResultSet::SetOperations быть тем, что вам нужно?

Другие вопросы по тегам