Is it possible to add to different aliases to the same table in a dynamic query?
The best answer I have at this point is to simply execute the subquery first using fetchAssoc() to return an array. 

$subquery = db_select('nested_category', 'parent');
$subquery-&gt;addField('parent', 'lft');
$subquery-&gt;addField('parent', 'rgt');
$subquery-&gt;condition('name', $name, '=');
$parent = $subquery-&gt;execute()-&gt;fetchAssoc();

$query = db_select('nested_category', 'node');
$query-&gt;addField('node', 'name');
$query-&gt;condition('node.lft',$parent, 'BETWEEN');
$results = $query-&gt;execute()-&gt;fetchAll();