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