Yes. You are looking for a Left Outer Join
, where the type of query you first reference is a Right Outer Join
. Your query might look like:
SELECT (SELECT Id FROM Awards__r) FROM Person__c
You can control the value of this Child Relationship Name
in the configuration on the lookup field. Custom lookups append __r
to the relationship name. When configuring the lookup definition, this option will be on Step 3
of the configuration wizard.

You can also change it later by editing the field.

You can verify the child relationship to use programmatically (where I guessed it might be Awards__r
) using this snippet in Execute Anonymous
:
for (ChildRelationship relation : SObjectType.Person__c.getChildRelationships())
if (relation.getChildSObject() == Award__c.sObjectType)
system.debug(relation.getRelationshipName()); // use this output verbatim
Note that while you can treat this sub-query like a field, it contains a List<Award__c>
in this instance.
Person somePerson = [SELECT (SELECT Id FROM Awards__r) FROM Person__c LIMIT 1];
List<Award__c> awards = somePerson.Awards__r;
// you can also get it dynamically
awards = somePerson.getSObjects('Awards__r');