Программирование >>  Исключение дубликатов строк 

1 ... 99 100 101 [ 102 ] 103 104 105 ... 152


vendors table joined with the product vendors table on vendor ID, and then joined with the products table on product number where product name contains bike (Выбрать полное имя клиента и наименование товара из таблицы Клиенты , соединенной с таблицей Заказы по идентификатору клиента, затем соединенной с таблицей Детали заказа по номеру заказа, затем соединенной с таблицей Товары по номеру товара, где наименование товара содержит *bike, в соединении с (Выбрать имя поставщика и наименование товара из таблицы Поставщики , соединенной с таблицей Товары поставщика по идентификатору поставщика и затем соединенной с таблицей Товары по наименованию товара, где наименование товара содержит велосипед))

Уточнение: Select customer full name me product name from the

customers table joined with the orders table on customer ID, theft joined with the order details table on order number, and then joined with the products table on product number where product name contains LIKE %bike%, combined with UNION select vendor name т6 product name from the vendors table joined with the product vendors table on vendor ID, and then joined with the products table on product number where product name contains LIKE %bike%

(Выбрать полное имя клиента, наименование товара из Клиенты , соединенной с Заказы по идентификатору клиента, соединенной с Детали заказа по номеру заказа, соединенной с Товары по номеру товара, где наименование товара LIKE *%bike%, UNION (в соединении с) (Выбрать имя поставщика, наименование товара из Поставщики , соединенной с Товары поставщика по идентификатору поставщика, соединенной с Товары по наименованию товара, где наименование товара содержит LIKE *%bike%))

SQL SELECT Customers.CustLastName

Customers.CustFirstName AS FullName, Products.ProductName, Customer AS RowID FROM ((Customers INNER JOIN Orders ON Customers.CustomerlD = Orders.CustomerlD) INNER JOIN Order.Details

ON Orders.OrderNumber = Order Details.OrderNumber)



INNER JOINProducts

ON Products.ProductNumber =

OrderDetails.ProductNumber WHERE Products.ProductName LIKE XbikeX UNION

SELECT Vendors.VendName, Products.ProductName,

Vendor AS RowID FROM (Vendors INNER JOIN ProductVendors ON Vendors.VendorlD = Product Vendors.VendorlD)

INNER JOIN Products

ON Products.ProductNumber =

Product Vendors.ProductNumber WHERE Products.ProductName LIKE XbikeX

Хотя полученный результат оказался размером с ранчо, однако дело сделано! Обратите внимание, что в оба оператора SELECT также добавлен строковый литерал с именем RowID, так что будет легко увидеть, какие строки ведут свое происхождение от клиентов, а какие - от поставидиков. Можно было попробовать вставить ключевое слово DISTINCT в первый оператор SELECT, поскольку хороший клиент, возможно, заказывал конкретную модель велосипеда более одного раза. Поскольку в UNION не использовалось ключевое слово ALL, запрос исключит дубликаты. Если добавить DISTINCT, это может означать, что у системы базы данных дважды запрошено исключение дубликатов!

Когда необходимо построить запрос UNION, рекомендуется построить вначале отдельные операторы SELECT. Затем можно легко скопировать и вставить синтаксис каждого из операторов SELECT в новый запрос, отделив каждый оператор ключевым словом UNION.

Использование UNION более одного розо

UNION можно использовать для объединения нескольких множеств наборов результата. Можно последовательно записать спецификацию второго оператора SELECT с другим ключевым словом UNION и еш,е один оператор SELECT. Хотя в некоторых реализациях имеются ограничения на количество наборов результатов, которые можно объединить в UNION, теоретически можно добавлять UNION SELECT без всяких ограничений.

Предположим, что необходимо построить единый список адресов из трех различных таблиц - Customers, Employees и Vendors. На рис. 10.9 показана диаграмма синтаксиса для построения этого списка.

Очевидно, что нужно создать один оператор SELECT для извлечения всех имен и адресов из таблицы Customers, объединив (UNION) его с оператором SELECT для получения этой же информации из таблицы Employees и, наконец, с оператором SELECT для получения имен и адресов из таблицы Vendors.



DISTINCT

fcnii *ii.miiiniii !i

FROIVI - имятаблицы

Типтироваиное выражение

UNCON

SELECT

DISTINCT

Типтироваиное выражение

FROM ->* имятаблицы

UNION

SELECT

DISTINCT

1 ЧтЧЧвЯЧ

FROM имяоблицы

-Типизированное выражение -

Рис. 10.9. Создание UNION трех таблиц

Create а single mailing list for customers, employees, and vendors . ( Создать простой список почтовой рассылки для клиентов, сотрудников и поставщиков .)

Преобразование/ Уточнение:

Select customer full name, customer street address, customer city, customer state, afte customer zip code from the customers table combined with UNION Select employee full name, employee street address, employee city, employee state, attd employee zip code from the employees table combined with UNION Select vendor name, vendor street address, vendor city, vendor state, atte vendor zip code from the vendors table (Выбрать полное имя, улицу в адресе клиента, город клиента, штат клиента, почтовый индекс клиента из, Клиенты UNION (в соединении с) (Выбрать полное имя, улицу в адресе сотрудника, город сотрудника, штат сотрудника, почтовый индекс сотрудника из Сотрудники ) UNION (Выбрать полное имя, улицу в адресе поставидика, город поставидика, штат поставш,ика, почтовый индекс поставидика из Сотрудники ))



1 ... 99 100 101 [ 102 ] 103 104 105 ... 152

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика