Я бы лично сказал второй запрос.
Сначала он запрашивает таблицу Items
напрямую и фильтрует с помощью предложения WHERE в поле этой таблицы.
Во-вторых, он использует только один другой подзапрос вместо двух.
В конце второй пример завершает выполнение только двух запросов, тогда как первый пример выполняет три.
Многие запросы всегда будут обходиться дороже, чем меньшее количество запросов для управления ядром базы данных. За исключением случаев, когда вы выполняете EXISTS проверки вместо соединений таблицы. Соединение дороже, чем предложение EXISTS .