Показать детали сотрудников, подписавшихся на футбол и шахматы, но не для тенниса.Почему эти два вопроса отличаются друг от друга?
SELECT *
FROM employee
WHERE empid IN (SELECT empid
FROM subscription
WHERE facid IN (SELECT facid
FROM facility
WHERE facility = 'Chess'
OR facility = 'Football'))
AND empid NOT IN (SELECT empid
FROM subscription
WHERE facid = (SELECT facid
FROM facility
WHERE facility = 'Tennis'));
SELECT DISTINCT empid
FROM subscription
WHERE facid IN (SELECT facid
FROM facility
WHERE facility = 'Chess'
OR facility = 'Football')
AND facid != (SELECT facid
FROM facility
WHERE facility = 'Tennis');
Первый дает правильный результат.
Вы слышали о ПРИСОЕДИНИТЕСЬ? –
Не видя данных, понимая, что такое «правильный результат» и что такое «неправильный результат», мы не можем помочь. – Oded
@Oded: Несмотря на отсутствие данных, просто объясните, как ведет себя И во втором запросе. –