Поиск
Архивы
Админ
INTERSECT и MINUS sql
Команда UNION, как вы уже видели в Главе 14, может объединить два запроса, объединив их вывод в один. Два других обычно имеющихся способа объединения отдельных запросов — это INTERSECT (Плюс) и MINUS (Минус). INTERSECT выводит только строки, произведенные обоими перекрестными запросами, в то время как MINUS выводит строки, которые производятся одним запросом, но не другим. Следовательно, следующие два запроса
SELECT *
FROM Salespeople
WHERE city = 'London'
INTERSECT
SELECT *
FROM Salespeople
WHERE 'London' IN (SELECT city
FROM Customers
WHERE Customers.snum = Salespeople.snum);
выведут строки, произведенные обоими запросами, производящими всех продавцов в Лондоне, которые имели, по крайней мере, одного заказчика, размещенного там также. С другой стороны, запрос
SELECT *
FROM Salespeople
WHERE city = 'London'
MINUS
SELECT *
FROM Salespeople
WHERE 'London' IN (SELECT city
FROM Customers
WHERE Customers.snum = Salespeople.snum);
удалит строки, выбранные вторым запросом из вывода первого, и таким образом, будут выведены все продавцы в Лондоне, которые не имели там заказчиков. MINUS иногда еще называют DIFFERENCE (ОТЛИЧИЕ).
Популярность: 17%