select jmeno
from T
where auto in ('Nissan','Audi')
group by jmeno
having count(*) = 2 -- nebo > 1 pokud hledáte vlastníka alespoň jednoho z vozidel
Vše ostatní bude mít větší algoritmickou složitost. ( join, intersection = zakuklený join ).
Nevím co je to za divnou mánii posuzovat složitost selectu podle existence subselectu. Subselect je regulérní logická konstrukce ( stejně jako závorky v algebře čísel ). I dotaz s několika subselecty může být jednoduchý na vyhodnocení a naopak pouhý jeden join (s disjunktivní join podmínkou) může být totální zabiják.