UNION И УСТРАНЕНИЕ ДУБЛИКАТОВ

UNION будет автоматически исключать дубликаты строк из вывода. Это нечто несвойственное для SQL, так как одиночные запросы обычно содержат DISTINCT чтобы устранять дубликаты. Например запрос, чей вывод показывается в Рисунке 14.2,
SELECT snum, city FROM Customers;
имеет двойную комбинацию значений ( snum=1001, city=London ), потому что мы не указали, чтобы SQL устранил дубликаты. Однако, если мы используем

cnum city
1001 London
1003 Rome
1002 San Jose
1002 Berlin
1001 London
1004 Rome
1007 San Jose

Рисунок 14.2: Одиночный запрос с дублированным выводом

UNION в комбинации этого запроса с ему подобным в таблице Продавцов, то эта избыточная комбинация будет устранена. Рисунок 14.3 показывает вывод следующего запроса.
SELECT snum, city FROM Customers UNION SELECT snum, city FROM Salespeople.;

1001 London
1002 San Jose
1007 San Jose
1007 New York
1003 Rome
1001 London
1003 Rome
1002 Barcelona
1007 San Jose

Рисунок 14.3: UNION устраняет двойной вывод
Вы можете получить нечто похожее ( в некоторых программах SQL, используя UNION ALL вместо просто UNION, наподобии этого:
SELECT snum, city FROM Customers UNION ALL SELECT snum, city FROM Salespeople;