DBIx :: Class를 사용하여 집합 연산을 수행하는 가장 좋은 방법은 무엇입니까? 하나의 솔루션은 쿼리를 기반으로 결과 소스를 만드는 것이지만 조건은 사용자가 정의하며 최적의 대답은 결과 소스를 즉석에서 생성하는 것입니다.DBIx :: Class의 연산 설정
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'
)
)
사용자가 정의한 말은 위의 9 개 이상의 자리 표시자를 의미합니까? – cubabit
예, 정확하게. 사용자는 (attr_name, value) 및 교차점과 공용체 쌍을 사용하여 많은 필터를 정의 할 수 있습니다. – nsbm