на начало
На главную страницу
Форум   

Статья :: visual foxpro Многотабличные запросы

 

Многотабличные запросы

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

При создании многотабличного запроса в окно конструктора запросов добавляются все участвующие в выборке таблицы и определяются условия их объединения. Если между участвующими в запросе таблицами в базе данных установлены постоянные отношения, то в окне конструктора запросов эта связь будет отображаться в виде линии, соединяющей таблицы, а на вкладке Join (Объединение) появится запись, содержащая условие объединения таблиц (рис. 9.14).

gl9-14.jpg

Рис. 9.14. Вкладка Join содержит условия объединения таблиц

Если таблица, добавляемая в конструктор запросов, не имеет установленных в базе данных связей с уже размещенными в конструкторе таблицами, на экране открывается диалоговое окно Join Condition (Условие объединения) (рис. 9.15), в котором необходимо задать условие объединения двух таблиц.

В верхней части диалогового окна Join Condition (Условие объединения) размещены два раскрывающихся списка, содержащие поля, которые можно использовать для объединения таблиц. Ниже расположен переключатель Type of join (Тип объединения), содержащий опции, определяющие тип создаваемой между таблицами связи. Назначение опций описано в табл. 9.3.

gl9-15.jpg

Рис. 9.15. Определение условия объединения таблиц в диалоговом окне Join Condition

Таблица 9.3. Назначение опций диалогового окна Join Condition

Опция Тип создаваемой связи
Inner join

(Внутреннее объединение)

Создает объединение, в котором выбираются только те записи, которые содержат совпадающие значения в полях связи
Left join

(Объединение слева)

Создает объединение, в котором выбираются все записи из левой таблицы, а также записи из правой таблицы, значения поля связи которого совпадают со значениями поля связи левой таблицы
Right join

(Объединение справа)

Создает объединение, в котором выбираются все записи из правой таблицы, а также записи из левой таблицы, значения поля связи которого совпадают со значениями поля связи правой таблицы
Full join (Полное объединение) Создает объединение, в котором выбираются все записи из правой и левой таблиц

Замечание

По умолчанию Visual FoxPro при объединении таблиц использует опцию Inner join (Внутреннее объединение), при которой из таблиц выбираются только те записи, которые содержат совпадающие значения в полях связи.

Замечание

В отличие от постоянных отношений, определяемых между таблицами в базе данных, при объединении таблиц в конструкторе запросов вы можете использовать любые поля таблиц.

Установленные между таблицами условия объединения можно изменять. Для этого выполните следующие действия:

  1. Дважды щелкните мышью на линии, связывающей таблицы, или на вкладке Join (Объединение) нажмите кнопку с двунаправленной стрелкой с левой стороны поля Туре (Тип).
  2. В открывшемся диалоговом окне Join Condition (Условие объединения), отображающем текущее условие объединения таблиц, измените требуемые параметры.
  3. Нажмите кнопку ОК.

Совет

Для установления связи между таблицами в конструкторе запросов, как и в базе данных, можно использовать механизм "перенести-и-оставить". Выберите поле одной из таблиц, нажмите кнопку мыши и удерживая ее нажатой, перенесите поле на связываемое поле в другой таблице. После этого откройте диалоговое окно Join Condition (Условие объединения) и отредактируйте установленное условие объединения таблиц.

 

visual foxpro Многотабличные запросы

страницы в данном разделе 
visual foxpro Глава 9 visual foxpro Запросы к базе данных
visual foxpro Команды, используемые при формировании запросов visual foxpro Сохранение запроса
visual foxpro Запуск запроса на выполнение visual foxpro Формирование списка полей результирующей таблицы запроса
visual foxpro Вычисляемые поля запроса visual foxpro Вкладка Order By конструктора запросов
visual foxpro Упорядочение по нескольким полям visual foxpro Задание условий для выбора записей
visual foxpro Задание условия точного совпадения значений одного поля visual foxpro Выбор полей, не удовлетворяющих заданному условию
visual foxpro Выбор похожих значений visual foxpro Выбор записей, находящихся в заданном диапазоне значений
visual foxpro Формирование списка условий visual foxpro Многотабличные запросы
visual foxpro Выборка из четырех таблиц visual foxpro Группировка полей запроса
visual foxpro Использование в запросе выражений и функций полей visual foxpro Включение в запрос итоговых значений
visual foxpro Изменение наименований полей в запросе >  


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста