You need to sign in to do that
Don't have an account?
Query - How to join different Objects (table)
Hi,
I am new to Apex and SOQL, and trying to learn programing. What I have is this code below in the class
public class opportunityList2Con { public ApexPages.StandardSetController setCon {get { if(setCon == null) {setCon = new ApexPages.StandardSetController(Database.getQueryLocator([select name, Amount, ExpectedRevenue, closedate from Opportunity])); } return setCon; }set; } public List<Opportunity> getOpportunities() { return (List<Opportunity>) setCon.getRecords(); } }
Then this code in the page Test1:
<apex:page controller="opportunityList2Con"> <apex:pageBlock > <apex:pageBlockTable value="{!opportunities}" var="o"> <apex:column value="{!o.name}"/> <apex:column value="{!o.Amount}"/> <apex:column value="{!o.ExpectedRevenue}"/> <apex:column value="{!o.closedate}"/> </apex:pageBlockTable> </apex:pageBlock> </apex:page>
So this is pulling a list of Opportunities with some fields. However, I would like to edit a query to JOIN with other objects CASES and TASKS to pull any cases or tasks/events that associate with the opportunity, but I couldn't figure out the query. so example I would like to so the Join tables like this in MSSQL or Oracle8.
Select from op.name, op.amount, c.number, c.subject, a.subject, a.AssignedTo
From Opportunity op, Case c, a.Activity
Where
op.caseID = c.caseID
c.ActivityID = a.ActivityID.
This query example is bad, but I want to use it so you would know what i am trying to accomplish.
Any advice would be appreciated,
Thanks,
Check out the documentation on SOQL Relationships. Basically you need to traverse across a defined relationship. I don't know of any standard one that joins case with opportunity so you'll need to apply this to however that is defined in your account but for activities, say "Task", you'd do something like this to aggregate the tasks for each opportunity in your list:
Then in your page you can iterate over the tasks like this:
This is really helpful, Thank you.
Another question.
This query below is working fine. However, I don't understand this.
I see the standard object of the task is "Task" (without a "s"), but this query has "select subject from Tasks" which works fine. I tried to change to Task (without a "s" char), then it won't work. Please advise the different.
Thanks,
Task is generally used for the Workflow tasks when assigned, approved etc. <My guess>
However a short hand query would be >
Thanks Akx