1

DBIx::Class を使用して集合演算を実行する最良の方法は何ですか? クエリに基づいて検索先を作成することが 1 つの解決策であることがわかりましたが、条件はユーザーによって定義されるため、その場で検索先を作成することが最善の答えであるかどうかはわかりません。

基本的に、このタイプのクエリを DBIC に変換する必要があります。ここでcodeattr_namevalueはユーザーによって定義されます。

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'
  )
)
4

1 に答える 1

2

DBIx ::Class::Helper::ResultSet::SetOperationsは必要なものでしょうか?

于 2011-08-11T15:38:17.567 に答える