Select only if row not exists in joined table
You can use isNull() method : 

$query = db_select('scald_atoms', 'a');
$query-&gt;fields('a', array('sid','title'));
$query-&gt;leftjoin('table_name','table_alias','table_alias.entity_id = a.sid');
$query-&gt;isNull('table_alias.mon_field_value');
$query-&gt;execute();
$query-&gt;fetchAllAssoc('nid');


with your example something like that should do it : 

$query = db_select('t_project_proposal_writer', 'p')-&gt;fields('p');
$query-&gt;leftjoin('t_project_milestone', 'm', 'p.id=m.proposal_id');
$query-&gt;isNull('m.milestone_id');