2014-10-19 30 views
1

是否可以使用表格別名進行自連接?可以說我是一家書店,我希望所有上週和本週都購買書籍的顧客。在MySQL中,這看起來有點像這樣:是SOQL能夠自我連接mysql樣式嗎?

SELECT Account.id from Opportunity o1, Opportunity o2  
    WHERE o1.closeDate = Last_WEEK AND o2.closeDate = This_WEEK 
    AND o1.Account = o2.Account 

在MySQL中等價於什麼?它讓我困惑不已。

回答

1

您無法將一個機會賬戶ID與SOQL中的另一個機會賬戶ID進行比較(o1.Account = o2.Account)。如果你嘗試,你會得到消息:相反,如果你返工SOQL使用子查詢

綁定變量只有在頂點代碼允許

你會得到一個不同的錯誤。

SELECT AccountId from Opportunity o1 
where o1.closeDate = LAST_WEEK 
    AND o1.Account in 
    (SELECT AccountId from Opportunity o2 WHERE o2.closeDate = THIS_WEEK) 

給出:

內外選擇不應該在相同的對象類型。

你將需要:

  1. 執行兩個查詢來獲得所需的數據。您可以將第一個查詢的結果Account Id作爲where子句過濾器提供給第二個查詢。
  2. 在一個SOQL查詢中檢索具有兩個關閉日期的Account ID,然後使用代碼構建所需的集合。

順便提一句,Salesforce StackExchange site是向Salesforce提出特定問題的好地方。