select
o.*,
SUM(if(ol.status = "Approved" and (ol.end_date > now() or end_date is null), 1, 0)) as cond1,
SUM(if(ol.status = "Pending" and (ol.end_date != now() or end_date is null), 1, 0)) as cond2
from
outreach o
left join
outreach_links ol on ol.outreach_id = o.id
group by
o.id
having
cond1 = 0 and cond2 != 1
;
Nie jestem pewien, czy tego szukasz, ale możesz spróbować.cond2 !=1 powoduje, że Twój warunek COUNT(id) =1 (jeśli jest więcej niż jeden połączony identyfikator w outreach_links, cond2 będzie większy niż 1)