русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объединение копий таблиц


Дата добавления: 2015-07-09; просмотров: 643; Нарушение авторских прав


 

В сложных запросах можно объединять не только разные таблицы, но и копии одной таблицы. Например, если необходимо найти все пары продавцов, которые имеют одинаковые комиссионные. Для этого с помощью Конструктора создадим запрос как показано на рис. 36. Здесь таблица Salespeople выбрана два раза, поэтому в зоне таблиц находится таблица Salespeople и ее копия Salespeople_1.

 

Рис. 36.Пример запроса над таблицей Salespeople и ее копией (Salespeople_1).

 

Текст соответствующего SQL-запроса показан ниже:

 

SELECT Salespeople.sname, Salespeople_1.sname, Salespeople_1.comm

FROM Salespeople, Salespeople AS Salespeople_1

WHERE (((Salespeople_1.comm)=[Salespeople].[comm])

 

Имя второй таблицы и ее синоним (Salespeople AS Salespeople_1) содержится в строке с ключевым словом FROM.

Результат этого запроса будет содержать все комбинации пар фамилий, которые имею одинаковый рейтинг, в том числе и строки с идентичными фамилиями (см. рис.37).

 

Рис.37. Результат запроса с двумя таблицами Salespeople.

 

Исключить строки с одинаковыми значениями в первом и втором столбцах можно, добавив через логическую связку AND условие типа: Salespeople_1.snum < Salespeople.snum (т.е. «номер продавца в первой таблице должен быть строго меньше номера во второй таблице»). Это позволит исключить строки типа «Веселов=Веселов». В этом случае полный запрос будет выглядеть как показано ниже:

 

SELECT Salespeople.sname, Salespeople_1.sname, Salespeople_1.comm

FROM Salespeople, Salespeople AS Salespeople_1

WHERE (((Salespeople_1.comm) = [Salespeople].[comm])

AND ((Salespeople_1.snum) < [Salespeople].[snum]));

 

Результат запроса с дополнительным условием показан на рис.38. Здесь отобрана только одна строка, в которой продавец «Трофимов» имеет комиссионные такие же как и продавец «Змеев», что полностью соответствует поставленному вопросу.



Рис.38. Результат отбора строк с дополнительным условием (Salespeople_1.snum < Salespeople.snum);

 

Следует отметить, что конструктор QBE, строит синонимы таблиц по упрощенному алгоритму. В общем случает можно использовать любые синонимы для выбранных таблиц. Вот как будет выглядеть тот же запрос, если мы для первой таблицы Salespeople будем использовать букву A, а для второй таблицы Salespeople - ,букву B:

 

SELECT A.sname, B.sname, B.comm

FROM Salespeople AS A, Salespeople AS B

WHERE B.comm = A.comm AND B.snum < A.snum;

 

Результат запроса с синонимами таблиц показан на рис.38.

Таким образом, вводя в SQL запросах синонимы исходным таблицам базы данных, пользователь может существенно расширить возможности при построении сложных запросов над одной или несколькими таблицами.

 



<== предыдущая лекция | следующая лекция ==>
Объединение таблиц в запросах и выполнение операции JOIN (объединение) | Вложенные запросы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.315 сек.