|
Программирование >> Исключение дубликатов строк
OddTeam.TeamID = Той rneyMatches.Odd LaneTeamID) EvenTeam.TeamID = TourneyMatches. Winner.TeamID = EvenLaneTeamID) MatchGames .WinningTeamID Внимание! Это действительно забавный запрос, потому что для его выполнения требуется три копии одной таблицы (Teams). Необходимо, по крайней мере, присвоить корреляционные имена двум таблицам, чтобы все было законно, но мы пошли еще дальше и присвоили им всем имена-алиасы, чтобы отразить их специальные роли в запросе. Также при построении SQL структура, полученная на этапе Преобразование/Уточнение, соблюдалась не абсолютно точно. Это было сделано ддя того, чтобы продемонстрировать, что можно определить вложенные условия JOIN любым понравившимся способом до тех пор, пока не нарушаются отношения. ToumQment MQtch GQme Resijlts (168 строк)
База данных рецептов Show те the main course recipes and list all the ingredients . ( Показать рецепты основного блюда и список всех компонентов .) Преобразование/ Select recipe title, ingredient name, measurement Уточнение: description, ane amount from the recipe classes table joined with the recipes table on recipe class ID, theft joined with the recipe ingredients table on recipe ID, theft joined with the ingredients table on ingredient ID, and finally joined with the measurements table on measure amount ID, where recipe class description Ь = main course (Выбрать заголовок рецепта, название компонента, описание единиц измерения, количество из Виды рецептов , соединенной с Рецепты по идентификатору вида рецепта, соединенной с Компоненты рецепта по идентификатору рецепта, соединенной с Компоненты по идентификатору компонента, соединенной с Единицы измерения по идентификатору количества в единицах измерений, где описание вида рецепта = main course) SQL SELECT Recipes.RecipeTitle, Ingredients.IngredientName, Measu rements.Measu rementDesc ription, Recipe.Ingredients.Amount FROM (((Recipe Classes INNER JOIN Recipes ON Recipes.RecipeClassID = Recipe Classes.RecipeClassID) INNER ]OIN Recipe Ingredients ON Recipes.RecipelD = Recipe Ingredients.RecipelD) INNER JOIN Ingredients ON Ingredients.IngredientID = RecipeIngredients.IngredientID) INNER JOIN Measurements ON Measurements.MeasureAmountID = Recipe Ingredients.MeasureAmountID WHERE Recipe.Classes.RecipeClassDescription = Main Course Осторожно! MeasureAmountID можно найти как в таблице Ingredients (Компоненты), так и в Recipe Ingrediems (Компоненты рецепта). Если определить последнее соединение по MeasureAmountID, используя таблииу Ingredients вместо таблицы Recipe Ingredients, то для компонента вместо единицы измерения количества, указанной для компонента в рецепте, будет получена единица измерения по умолчанию. Moin.Course.lngredients (53 строки)
Поиск совпадающих значений Наконец добавим третье измерение в картину. В этом последнем наборе примеров показаны запросы, которые используют соединение по общим значениям из двух или более наборов результатов или таблиц. Если база данных поддерживает ключевое слово INTERSECT, то многие из таких задач можно решить с помощью пересечения наборов результатов. Бозо донных зокозов но зокупку Find all the customers who ordered a bicycle and who also ordered a helmet . ( Найти всех клиентов, заказавших велосипед, а также заказавших шлем .) Этот запрос кажется достаточно простым, возможно, слишком простым. Поэтому зададим его другим образом, чтобы было более понятно, что требуется сделать базе данных. Find all the customers who ordered a bicycle, then find all the customers who ordered a helmet, and finally list the common customers so we know who ordered both a bicycle and a helmet . ( Найти всех клиентов, заказавших велосипед, затем найти всех клиентов, заказавших шлем, и, наконец, привести список общих клиентов, чтобы знать, кто заказал как велосипед, так и шлем .) Преобразование 1: Select customer first name and customer last name from those common to the set of customers who ordered bicycles and the set of customers who ordered helmets
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |