自己結合を使用して目的の結果を得ることができます-出力を得るためにクエリを少し調整しました-
select distinct e1.name from fruits e1,(Select name, fruit_name
from fruits
where initcap(name) like '%Donald%') e2
where e1.fruit_name = e2.fruit_name;
上記のクエリは、少なくとも 1 つの果物が Donald と一致する従業員を返します
以下でテストされたクエリは、少なくともすべてのドナルドの果物が一致する従業員を提供します
select name from (
select name,count(1) cnt from
(select name,fruit_name, case when fruit_name in (Select distinct fruit_name
from fruits
where initcap(name) like '%Donald%') then 1 else 0 end fruit_match from fruits)
where fruit_match = 1 group by name) where cnt >=
(select count(distinct fruit_name) from fruits where initcap(name) like '%Donald%');