Операции над множествами в DBIx :: Class - PullRequest
1 голос
/ 08 августа 2011

Каков наилучший способ выполнения операций над множествами с использованием 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 Ответ

2 голосов
/ 11 августа 2011

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

...