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

1 ... 92 93 94 [ 95 ] 96 97 98 ... 152


Внимание! Этот запрос достаточно сложен, поскольку нужно предоставить

список всех клиентов, соединенных в OUTER JOIN только с заказами

на велосипеды. Если превратить Преобразование 1 напрямую в запрос SQL,

то не найдется ни одного клиента, не заказавшего велосипед!

Операция OUTER JOIN из Customers к Orders возвратит всех клиентов

и любые заказы. Если добавить фильтр для выбора только заказов

на велосипед, будут получены только клиенты, заказавшие велосипеды.

Преобразование 2 показывает, как это правильно сделать: нужно создать внутренний набор результатов, возвращающий только заказы на велосипеды, затем выполнить OUTER JOIN, который связывает его с Customers, чтобы получить окончательный ответ.

fllLCustomers flncl flnv Bike Orclers (913 строк)

Will Thompson

1999-10-22

Trek 9000 Mountain Bike

$1,164,00

Will Пшшршп

1999-1М4

Trek 9000 Mountiiiii Bike

$1,164.00

Wiirniompson

1999-08-10

Viscount Mouneain Bike

$635-00 j

wm Titompson

1999-08-04

Viscoimt Mountain Bike

$615.95

Will Tliomp$oo

1999-1М4

Trek 9(X)0 Mountain Bike

$1.200.00

Will Thompson

199908*10

Trek 9(X)0 Mouniain Bike

$1,200.00

Will Thompson

1999-11-06

Trek 9000 Mountain Bike

$1,200,00

остальные строки

(Похоже, что Уилл Томпсон - клиент, с которого нужно сдувать пылинки!)

База данных агентства эстрадных мероприятий

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 строке)

EntertainerlD

EntStageName

Kathcrine Ehrlich

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)



1 ... 92 93 94 [ 95 ] 96 97 98 ... 152

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