|
Программирование >> Исключение дубликатов строк
(SELECT DISTINCT Bowlers.BowlerlD, (Bowlers.BowlerLastName j Bowlers.BowlerFirstName) AS BowlerFullName FROM ((Bowlers INNER JOIN Bowler Scores ON Bowlers,BowlerlD = Bowier Scores.BowlerlD) INNER JOIN TourneyMatches ON Tourney Matches.MatchID = Bowler.Scores.MatchID) INNER JOIN Tournaments ON Tournaments.TourneylD = Tou rneyMatches.Tou rneylD WHERE Tournaments.TourneyLocation = Bolero Lanes AND Bowier Scores.RawScore >= 170) AS BowierBolero ON BowierTbird.BowlerlD = BowierBolero.BowlerlD Внимание! Поскольку игрок в боулинг мог иметь высокое количество очков на каждой из дорожек для игры в боулинг больше одного раза, то для исключения повторений добавлено ключевое слово DISTINCT. Ооос1 Вош1вг5 TBircl nncl Bolero (10 строк) База данных рецептов Display all the ingredients for recipes that contain carrots . ( Вывести на экран компоненты рецептов, codepowaWfUx морковь .) Преобразование/ Select recipe ID, recipe title. Уточнение: iVfcblin, Susan as. lol Picrc) Greg ITiompson, Mary lliompson, Wu\ Рапегшп. Rache Fundt, Steve ingredient name from ttte recipes table joined with the recipe ingredients table on recipe ID, joined with the ingredients table on ingredient ID, then finally joined with (Select recipe ID from the ingredients table joined with the recipe ingredients table on ingredient ID where ingredient name \s = carrot) on recipe ID (Выбрать идентификатор рецепта, заголовок рецепта, название компонента из Рецепты , соединенной с Компоненты рецепта по идентификатору рецепта, соединенной с Компоненты по идентификатору компонента, соединенной с (Выбрать идентификатор рецепта из Компоненты , соединенной с Компоненты рецепта по идентификатору компоненты где название компонента = морковь) по идентификатору рецепта) SELECT Recipes.RecipelD, Recipes.RecipeTitle, Ingredients.IngredientName FROM ((Recipes INNER JOIN Recipe.Ingredients ON Recipes.RecipelD = Recipe Ingredients.RecipelD) INNER JOIN Ingredients ON Ingredients.IngredientID = Recipe Ing redients.Ing redientID) INNER JOIN (SELECT Recipe Ingredients.RecipelD FROM Ingredients INNER JOIN Recipe Ingredients ON Ingredients.IngredientID = RecipeIngredients.IngredientID WHERE Ingredients.IngredientName = Carrot) AS Carrots ON Recipes.RecipelD = Carrots.RecipelD RecipesContoiningCorrots (16 строк)
Внимание! Используя подзапрос, можно упростить решение этого запроса (см. главу 11). Итоги в данной главе мы подробно обсудили, как связать две или более таблиц или наборов результатов по совпадаюш,им значениям, а также концепцию JOIN и детали использования INNER JOIN. Мы объяснили, что допустимо использовать как критерий для JOIN, и предупредили о необходимости избегать бессмысленных соединений. Здесь были показаны примеры объединения двух таблиц. Кроме того, мы рассмотрели принципы назначения корреляционных имен (псевдонимов) таблицам в условии FROM. Корреляционные имена назначаются для удобства или при включении одной и той же таблицы несколько раз, или при использовании вложенного оператора SELECT. Вы узнали, как заменить ссылки на таблицу в операторе SELECT внутри условия FROM. Затем было показано, как расширить возможности, объединив более двух таблиц или наборов результатов. Обсу>вдение синтаксиса INNER JOIN было завершено повторным подчеркиванием важности хорошей структуры базы данных и понимания связей между своими таблицами. На конкретных примерах мы обсудили, почему полезно INNER JOIN. Эти примеры включали примеры для двух таблиц, для нескольких таблиц и для соединений по совпадаюш,им значениям. В следуюш,ей главе будет исследован другой вариант JOIN - OUTER JOIN. Зодочи для сомостоятельного решения Ниже приводятся формулировки запросов и имена решений этих запросов в учебных базах данных. Попрактикуйтесь немного и разработайте SQL ддя каждого запроса, а затем сверьте свой ответ с запросом, который сохранен нами в этих БД. Не беспокойтесь, если ваш синтаксис не совсем точно совпадает с синтаксисом сохраненных запросов,- важно, чтобы набор результатов был тем же. Бозо донных зокозов но зокупку 1. List customers and the dates they placed an order, sorted in order date sequence . ( Привести список клиентов и даты размеш.ения ими заказов, упорядоченных по дате заказа .) {Совет: Здесь требуется JOIN двух таблиц.) Решение можно найти в Customers And OrderDates (944 строки).
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |