Это зависит.
В конечном счете, 2 служат совершенно другим целям.
Вы присоединяетесь к 2 таблицам для доступа к связанным записям. Если вам не нужен доступ к данным в связанных записях, вам не нужно присоединяться к ним.
EXISTS можно использовать, чтобы определить, существует ли токен в данном наборе данных, но не позволит вам получить доступ к связанным записям.
Опубликуйте пример из двух методов, которые вы имеете в виду, и я мог бы дать вам лучшую идею.
С двумя таблицами Institutions and Results, если вы хотите получить список учреждений, которые имеют результаты, этот запрос будет наиболее эффективным:
select Institutions.institution_name
from Institutions
inner join Results on (Institutions.institution_id = Results.institution_id)
Если у вас имеется идентификатор института и вы просто хотите узнать, есть ли у него результаты, использование EXISTS может быть быстрее:
if exists(select 1 from Results where institution_id = 2)
print "institution_id 2 has results"
else
print "institution_id 2 does not have results"