2012-12-13 21 views
2

我想在加入名稱字段的兩個自定義對象上創建一個連接。通常,連接需要兩個對象之間的查找或主從關係,但我只想進行文本匹配。查詢在名稱字段上加入的兩個自定義對象

我認爲這是Salesforce的限制,但我無法找到任何文檔是否如此。任何人都可以確認嗎?

回答

5

是的,只有存在關係時,纔可以進行連接(帶點符號或子查詢)。而關係(查找或主 - 細節)只能由Id進行。有幾個「突變字段」(如Task.WhoId),但一般來說,您不能在SOQL中編寫JOIN,並且肯定不能使用文本列作爲外鍵。

http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_relationships.htm#relate_query_limits

關係查詢是不一樣的SQL連接。您必須在對象之間有一個 關係才能在SOQL中創建連接。

雖然有一些解決方法。爲什麼你需要加入?

Apex/SOQL - 例如看看SOQL in apex - Getting unmatched results from two object types。不是世界上最漂亮的東西,但它有效。如果你想嘗試一些非常瘋狂的東西 - SOSL會同時搜索你的2個物體?

報告 - 你應該沒有問題,通過文本字段分組 - 這意味着joined report可能會給你造成你之後。由於Winter'13加入報告使圖表和出口,那是相當的限制因素...

的數據之間的聯繫,建立簡單 - 使用外部ID和更新插入操作,特別是如果你打算從外面SF加載數據容易。檢查我的答案Can I insert deserialized JSON SObjects from another Salesforce org into my org?

唯一性約束 - 按要求&獨特的你仍然可以標記字段。

檢查允許值的「字典」 - 驗證規則VLOOKUP可能會做你以後的事情。

+0

感謝您的詳細信息。我有幾個使用Name字段作爲外部系統的外鍵的自定義對象。我最終使用的解決方案就像在SOIL in apex中的建議一樣 - 從兩種對象類型中獲得無與倫比的結果 –