// first query
SELECT * FROM table1 t1
WHERE NOT EXISTS (
SELECT 1 FROM table2 t2
WHERE t1.id = t2.id
)
LIMIT 0 , 30
$stmt = $modx->query("SELECT * FROM table1 t1
WHERE NOT EXISTS (
SELECT 1 FROM table2 t2
WHERE t1.id = t2.id
)
LIMIT 0 , 30");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);<object class="myObj1" table="table1" extends="xPDOSimpleObject"> <field key="name" dbtype="varchar" precision="100" phptype="string" null="false" default=""/> <composite alias="objects2" class="myObj2" local="id" foreign="object" cardinality="many" owner="local"/> </object> <object class="myObj2" table="table2" extends="xPDOSimpleObject"> <field key="object" dbtype="int" precision="10" phptype="integer" null="false" default=""/> <field key="description" dbtype="varchar" precision="100" phptype="string" null="false" default=""/> <aggregate alias="objects1" class="myObj1" local="object" foreign="id" cardinality="one" owner="foreign"/> </object>
$query = $modx->newQuery('myObj1', array(
"NOT EXISTS (SELECT 1 FROM {$modx->getTableName('myObj2')} myObj2 WHERE myObj1.id = myObj2.id)"
);
$query->limit(30, 0);
$myObj1 = $modx->getCollection('myObj1', $query);