using EntityFieldQuery, how to order results based on a node reference field title and/or field collection item field, says name I have a node which references another, I want to order the results based on the title of the referenced field title.

I'm using

function listAll(){
  $query = new EntityFieldQuery();
  $entities = $query-&gt;entityCondition('entity_type', 'node')
                    -&gt;entityCondition('bundle', 'building')
                    -&gt;fieldOrderBy('field_reference_area', 'title', 'ASC')
                    -&gt;execute();

  $nodes = entity_load('node', array_keys($entities['node']));

  foreach($nodes as $key =&gt; $fac){
      dsm($fac);
  } 
}
I'm afraid this won't be possible using EntityFieldQuery. You could build your own query using db_select() and have full control over it.

You can refer to this post and try to adapt it to fit your needs.