|
Программирование >> Исключение дубликатов строк
Внимание! Этот запрос достаточно сложен, поскольку нужно предоставить список всех клиентов, соединенных в OUTER JOIN только с заказами на велосипеды. Если превратить Преобразование 1 напрямую в запрос SQL, то не найдется ни одного клиента, не заказавшего велосипед! Операция OUTER JOIN из Customers к Orders возвратит всех клиентов и любые заказы. Если добавить фильтр для выбора только заказов на велосипед, будут получены только клиенты, заказавшие велосипеды. Преобразование 2 показывает, как это правильно сделать: нужно создать внутренний набор результатов, возвращающий только заказы на велосипеды, затем выполнить OUTER JOIN, который связывает его с Customers, чтобы получить окончательный ответ. fllLCustomers flncl flnv Bike Orclers (913 строк)
(Похоже, что Уилл Томпсон - клиент, с которого нужно сдувать пылинки!) База данных агентства эстрадных мероприятий List entertainers who have never been booked . ( Привести список эстрадных артистов, на которых никогда не было заявок .) Преобразование/ Select entertainer ID Mte entertainer stage name from tiie Уточнение: entertainers table left outer joined with the engagements table on entertainer ID where engagement number is null (Выбрать идентификатор эстрадного артиста, псевдоним артиста из Эстрадные артисты с левым внешним соединением с Ангажементы по идентификатору эстрадного артиста, где номер ангажемента - Nu SELECT Entertainers.EntertainerlD, Entertainers.EntStageName FROM Entertainers LEFT JOIN Engagements ON Entertainers.EntertainerlD = Engagements.EntertainerlD WHERE Engagements.EngagementNumber IS NULL €ntertQiners Never Booked (1 строке)
Show me all musical styles and the customers who prefer those styles . ( Показать все музыкальные направления и клиентов, предпочитающих эти направления .) Преобразование/ Select style ID, style name, customer ID, customer first Уточнение: name, customer last name from the musical styles table left outer joined with (the musical preferences table inner joined with the customers table on customer ID) on style ID (Выбрать идентификатор направления, идентификатор клиента, имя клиента, фамилию клиента из Музыкальные направления с левым внешним соединением с ( Музыкальные предпочтения с внутренним соединением с Клиенты по идентификатору клиента) по идентификатору направления) SELECT MusicalStyles.StylelD, Musical Styles.StyleName, Customers.Customer ID, Customers.CustFirstName, Customers.CustLastName FROM Musical Styles LEFT OUTER JOIN (Musical.Preferences INNER JOIN Customers ON Musical Preferences.CustomerlD = Customers.CustomerlD) ON Musical Styles.StyleID = Musical Preferences. StylelD fllLStvlcs flncl flnv Customcrs (41 строка) iiliiHiiiiliUl 40s Ballroom 10015 David MUSIC room USIC USIC lovce MUSIC 7()s Music Bucli;man I (K) 14 Mark M<t<<4-w->wWW -.-t<iii t->>y.w>w -;-№y wv.;4wvfrw .4>w- M*>i- >> -) k-vi>>4 4k->-> >m-v№>m>>- >;fc* ;->ywi->;v*vwA-.*4wivw, Sanih Classical Elix; остальные строки (Выглядит так, будто никто не любит музыку 50-х!) ,>saies Th<>m>san HaUmark Внимание! Мы очень осторожно выражаем словами условие FROM, чтобы вследствие воздействия на систему базы данных она в первую очередь выполнила INNER JOIN Mewiy Musical Preferences и Customers, a затем OUTER JOIN его результата с Musical Styles. Если база данных имеет тенденцию выполнять соединение слева направо, то нужно записать условие FROM вначале с INNER JOIN, за которым следует RIQHT OUTER JOIN с Musical Styles. В Microsoft Access требуется указать INNER JOIN как вложенный оператор SELECT, чтобы заставить его вернуть правильный ответ. База данных лиги игры в боулинг Show те tournaments that havent been played yet . ( Показать турниры, которые еще не разыгрывались .) Преобразование/ Select tourney ID, tourney date, а ё tourney location from Уточнение: the tournaments table left outer joined with the tourney matches table where match ID is null (Выбрать идентификатор турнира, дату и место проведения неразыгранного турнира из Турниры , соединенной с Матчи турнира , где идентификатор игры null)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |