Первый МОЖЕТ показывать значения из таблицы более одного раза, если условия объединения axbxc приводят к нескольким строкам.
Второй отображает значения из таблицы только один раз(поскольку он проверяет, находится ли он «в списке из подзапроса»)
Поскольку вы только начинаете с SQL, позвольте мне перефразировать ваш запрос с использованием синтаксиса ANSI SQL92, а также предложения EXISTS, котороеявляется альтернативой IN (но может оптимизироваться по-другому)
select a.value1
from apple a
where EXISTS (
select *
from oranges o
INNER JOIN banana b on b.value1 = o.value1
where o.value2 = 'oranges' and o.value1 = a.value1
);