$person = $xpdo->getObjectGraph('Persons', '{"Phones":{}}', 5);
echo 'Name: '.$person->get('fullname');
foreach($person->Phones as $phone)
echo 'Phone: '.$phone->get('phonenumber');SELECT * FROM persons LEFT JOIN phones ON phones.person=persons.id WHERE persons.id=5
SELECT persons.fullname , phones.phonenumber FROM persons LEFT JOIN phones ON phones.person=persons.id WHERE persons.id=5
$c = $modx->newQuery('Persons');
$c->select('Persons.id, Persons.fullname, Phones.id, Phones.phonenumber');
$c->leftJoin('Phones','Phones');
$c->where(array('Persons.id' => 5));
$person = $modx->getObject('Persons',$c);
echo 'Name: '.$person->get('fullname');
echo 'Phone: '.$person->get('phonenumber');You have to have at least the primary key (and any foreign keys involved in the relation) of each object or you can not retrieve the object.
$c->select('Persons.id, Persons.phone_id, Persons.fullname, Phones.id, Phones.phonenumber');$c = $xpdo->newQuery('Persons', 5);
$c->bindGraph('{"Phones":{}}');
$c->select('Persons.id, Persons.fullname, Phones.id, Phones.phonenumber');
$c->prepare();
echo $c->toSQL();SELECT *, persons.id, persons.fullname , phones.id, phones.phonenumber FROM persons LEFT JOIN phones ON phones.person=persons.id WHERE persons.id=5

$c->select('Person.id AS Person_id, Person.fullname AS Person_firstname, Phone.id AS Phone_id, Phone.phonenumber AS Phone_phonenumber');