How to exclude nodes with matching field values using EntityFieldQuery
I believe you do need a subquery here. Apparently, you can actually do that with EntityFieldQuery. So first create your subquery, something like this:

$subquery = db_select('your_field_data_table', 't');
$subquery-&gt;addField('t', 'nid');
$subquery-&gt;condition('field_period_notifications', $period);


That gives you all nodes that have a matching value. Then add this to your EntityFieldQuery to exclude those:

-&gt;fieldCondition('field_period', 'nid', $subquery, 'NOT IN')


Or maybe you can do:

-&gt;entityCondition('entity_id', $subquery, 'NOT IN')