UNION и устранение дубликатов

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

имеет двойную комбинацию значений ( snum=1001, city=London ), потому что мы не указали, чтобы SQL устранил дубликаты. Однако, если мы используем

SQL Execution Log

SELECT snum, city
FROM Customers;

snum
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.;

SQL Execution Log

SELECT snum, city
FROM Customers;

 
 

1001
London

1002
Rome

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;

 

 

‹ Использование предложения UNION
Вверх
Когда вы можете делать объединение между запросами ›

Айтистанция
Добавить комментарий