You need to sign in to do that
Don't have an account?

SOQL 実装に関する質問
SOQLについて知識が少なく、以下のケースがSOQLで実現方法のアドバイスをいただければ、助かります。
Custom には feature (特徴)という属性があります。
Featureは複数あります。数は無制限にしています。
これを表現するために、Custom Object と Feature Objectを作成して、
Custom 1 .. N Feature の関係しています。
Featureによって、推奨する商品 Productがあります。
一つの商品 Product は、複数のFeature条件が合致する時に推奨されます。
Product 1 .. N Feature という関係です。
ここで、ある顧客に推奨すべき商品を検索したい時に、
SOQLでどのように実現でしょうか?
Custom には feature (特徴)という属性があります。
Featureは複数あります。数は無制限にしています。
これを表現するために、Custom Object と Feature Objectを作成して、
Custom 1 .. N Feature の関係しています。
Featureによって、推奨する商品 Productがあります。
一つの商品 Product は、複数のFeature条件が合致する時に推奨されます。
Product 1 .. N Feature という関係です。
ここで、ある顧客に推奨すべき商品を検索したい時に、
SOQLでどのように実現でしょうか?
サブクエリはWHERE部分でも使用できるので何か利用できるかもしれません。あいまい検索ということでしたらLIKE条件も利用できると思います。
もしかすると確認済みかもしれませんが、開発者ガイドのリンクです。
Force.com SOQL および SOSL リファレンス
https://help.salesforce.com/help/pdfs/ja/salesforce_soql_sosl.pdf
一つ訂正させていただきます。
誤:Product 1 .. N Feature という関係です。
正:Product N .. N Feature という関係です。
## 以下、簡単な例、また、SQL Object, 課題を示します。
例えば、顧客Aには、以下の特徴があります。
sport, ball, out-door , in-door, team play, game , white color, orange color, cooking,
以下三つのProductがあって、それぞれ2,3の特徴を付けています。
table tennis racket : sport, in-door , ball
cooking game : game, cooking
golf shoes : out-door , white color, running
最初の二つProductのすべての特徴は、顧客Aの特徴にありますので、選択されます。
The golf shoes の running 特徴は、顧客Aにないので、選択されません。
## 簡単Object設計、SOQLと課題
Customer__c :Name, ID
Product__c : Name, ID
Feature__c : Name , ID
CustomerFeature__c : Name, ID,customerID__c , featureID__c
ProductFeature__c : Name, ID, productID__c, featureID__c
1, SELECT ID FROM CustomerFeature__c WHERE customerID__c = 「custome ID」
2, SELECT productID__c FROM ProductFeature__c WHERE featureID__c IN [ result ID of the above
SQL]
1つ目のSOQLは、正しくFeatureIDを選択できます。
2つ目のSOQLは、一つFeatureでも適合するProductを選択してしまいますので、golf shoes が選択され
てしまいます。
目的として、すべての特徴が適合しなければ、選択されません。golf shoesを除外したい。
正しいSOQLの書き方を教えていただきたい。
取得した後、Mapなどで判定処理する必要があるかもしれません。