|
Программирование >> Исключение дубликатов строк
( Мне нужны виды рецептов, все заголовки рецептов, соответствующие номера игагов включения компонентов, количество компонента, измерение компонентов и, наконец, названия компонентов из базы данных Рецепты ) Преобразование/ Уточнение: Select the recipe class description, recipe title, ingredient name, recipe sequence number, amount ane measurement description from the recipe classes table full outer joined with the recipes table on recipe class ID, then- left outer oined with the recipe ingredients table on recipe ID, theft loined with the measurements table on measurement amount ID, and then finally full outer joined with the ingredients table on ingredient ID (Выбрать описание вида рецепта, заголовок рецепта, название компонента, порядковый номер рецепта, количество, описание единиц измерения из Виды эецепта с полным внешним соединением с Рецепты по идентификатору вида рецептов, с левым внешним соединением с Компоненты рецепта по идентификатору эецепта, соединенной с Единицы измерения по идентификатору единиц измерения количества, с полным внешним соединением с Компоненты по идентификатору компонента) SELECT Recipe Classes.RecipeClassDescription, Recipes.RecipeTitle, Ingredients.IngredientName, RecipeIngredients.RecipeSeqNo, Recipe Ingredients.Amount, Measurements.MeasurementDescription FROM RecipeClasses FULL OUTER JOIN (((Recipes LEFT OUTER JOIN Recipe.Ingredients ON Recipe.RecipelD = Recipe Ingredients.RecipelD INNER JOIN Measurements ON Measurements.MeasureAmount.ID = RecipeIng redients.Measu reAmountID) FULL OUTER JOIN Ingredients ON Ingredients.IngredientID = RecipeIngredients.IngredientID) ON Recipe.Classes.RecipeClassID = Recipes.RecipeClassID Внимание! Приведенный пример представляет собой запрос, решенный в разделе о FULL OUTER JOIN. Мы включили его сюда, чтобы можно было видеть фактический результат. В примерах баз данных этот запрос в версии для Microsoft Access отсутствует, потому что Microsoft Access не поддерживает FULL OUTER JOIN. fill fiecipe ClQsses fill fiecipes (109 строк)
Итоги в данной главе вы познакомились с миром операций OUTER JOIN и его отличием от INNER JOIN. Вы также узнали, как построить LEFT или RIGHT OUTER JOIN, на простых примерах с использованием двух таблиц, а затем вложенные операторы SELECT и операторы с использованием нескольких операций JOIN. Операция OUTER JOIN, объединенная с проверкой на Null, эквивалентна операции DIFFERENCE (см. главу 7). При построении операторов с испрльзованием нескольких операций OUTER JOIN можно столкнуться с некоторыми затруднениями, и мы объяснили, как их преодолеть. При обсуадении LEFT и RIGHT OUTER JOIN была рассмотрена задача, требуюш,ая нескольких операций OUTER JOIN, которая не может быть решена только с помои;ью LEFT или RIGHT JOIN. При необходимости можно использовать тип соединения FULL OUTER JOIN вместе с другими операциями INNER и OUTER JOIN для получения правильного ответа. Были даны краткие пояснения варианта FULL OUTER JOIN - UNION JOIN. С помощью OUTER JOIN можно решить самые разнообразные запросы. Мы привели почти дюжину примеров использования OUTER JOIN и показали логику, положенную в основу построения оператора, являюш,егося решением для каждого запроса. Зодочи для сомостоятвльного решения Ниже приведены формулировки запросов и имена решений для этих запросов в учебных базах данных. Попрактикуйтесь немного и разработайте SQL дня каждого запроса, а затем сверьте свой ответ с запросом, который сохранен нами в этих базах данных. Не беспокойтесь, если ваш синтаксис не совсем точно совпадает с синтаксисом сохраненных запросов,- важно, чтобы набор результатов был тем же. Бозо донных зокозов но зокупку 1. Show те customers who haven Ч ever ordered a helmet . ( Показать клиентов, никогда не заказывавших шлем . {Совет: Это еш,е один запрос, где необходимо вначале построить INNER JOIN, чтобы найти все заказы на шлемы, а затем выполнить OUTER JOIN с Customers). Решение можно найти в Customers No Helmets (2 строки). 2. Display customers who have no sales rep (employees) in the same zip code . ( Вывести на экран клиентов, у которых нет торговых представителей (сотрудников) с одинаковым почтовым индексом .) Решение можно найти в Customers No Rep Same Zip (20 строк). 3. List all products and the dates for any orders . ( Привести список всех товаров и даты всех заказов .) Решение можно найти в All Products Any Order Dates (2682 строки). Бозо донных огвнтство эстродных мероприятий 1. Display agents who havent booked any entertainer . ( Вывести на экран агентов, которые никогда не подавали заявок на эстрадного артиста .) Решение можно найти в Agents No Contracts (1 строка). 2. List customers with ho bookings . ( Привести список клиентов, не имеюш.их заявок .) Решение можно найти в Customers No Bookings (2 строки). 3. List all entertainers and any engagements they have booked . ( Привести список всех эстрадных артистов и всех ангажементов, где на них имеется заявка .) Решение можно найти в All Entertainers And Any Engagements (112 строк).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |