Если в запросе или представлении участвует множество таблиц, вы можете контролировать, какие записи запроса или представления будут извлечены с помощью введения или изменения условий объединения между таблицами. Работа с объединения аналогична как для запросов, так и для представлений; поэтому процедуры используют в качестве примеров запросы. Хотя вы можете запустить запрос или представление без объединений, результат будет иметь малое практическое применение и может потребовать большого количества времени для своей работы.
Для получения более подробной информации об условиях смотрите описание Условия объединения для таблиц, запросов и представлений.
Введение условий объединения
Объединения обычно появляются автоматически, когда вы добавляете в запрос или представление таблицы. Однако, если имена полей в связываемых таблицах не соответствуют друг другу, вам может потребоваться указать объединение, желаемое вами для таблиц и добавить их, используя диалоговое окно Join Condition (Условие объединения) в конструкторе запросов и представлений (Query and View designers).
Процесс добавления соединения аналогичен для обоих конструкторов. Описываемая процедура вводит объедигнение в конструкторе запроса (Query Designer).
Для создания объединения между таблицами с помощью Query Designer (Конструктора запроса)
-
Создайте или откройте запрос.
-
Добавьте в запрос таблицу, что у вас было две или более таблиц.
-
В полоске инструментов Query Designer (Конструктора запроса) шелкните по Add Join (Добавить объединение).
-
В диалоговом окне Join Condition (Условие объединения) выберите в двух таблицах связанные имена полей.
Замечание
Установите объдинение для колонок, только если они имеют один и тот же размер и тип данных.
-
Выберите тип соединения и щелкните по OK.
Вы можете, кроме того, добавить соединения для таблиц, которые уже имеются на поверхности конструкторов запроса и представления путем выбора и перетаскиванием мыщкой между полями в таблицах или выбором кнопки Add Join (Добавить соединение) в полоске инстурментов конструктора для отображения диалогового окна Join Condition (Условие объединения) . Вы можете, кроме того, создать тип объединения используя опцию FROM в предложении SQL SELECT.
Для получения более подробной информации о диалоговом окне Join Condition (Условие объединения) смотрите описание Диалоговое окно Join Condition (Условие объединения). Для получения более подробной информации о предложениях SQL SELECT, генерируемых конструкторами запроса и представления смотрите Как: создавать запросы (Visual FoxPro), Как: посмотреть и отредактировать предложения SQL для представлений и описание команды SELECT - SQL.
Например, предположим, что вы желаете извлечь информацию о заказе, включая информацию о потребителе,
разместившим заказ. Приведенный ниже пример создает представление, используя две таблицы, Customers
и Orders
. Обе таблицы, Customer
и Orders
имеют поле идентификатора потребителя ID. Таблицы связаны на основе внутреннего объединения (inner join),
которое указыавет, что в результат будут включены только записи из таблицы Customer
,
которые соответствуют одной или более записей из таблицы Orders
.
Приведенный ниже программный код открывает образцовую базу TestData.dbc, создает представление с помощью команды CREATE SQL VIEW, как описано в примере, и использует опцию FROM для указания условия объединения:
![]() | |
---|---|
OPEN DATABASE testdata CREATE SQL VIEW cust_orders_view AS ; SELECT * FROM testdata!customer ; INNER JOIN testdata!orders ; ON customer.cust_id = orders.cust_id |
Изменение условий объединения
Вы можете изменить существующие объединения следующими способами:
-
Выбрать другой тип объединения для изменения области возвращаемых данных.
-
Выбрать другие поля в таблице для объединения.
-
Изменить оператор сравнения.
-
Изменить порядок объединений
Процесс изменения объединения одинаков для конструкторов запроса и представления. Описываемая ниже процедура изменяет объединение в Query Designer (Конструкторе запроса).
Для изменения объединения
-
Откройте запрос, содержащий таблицы с объединениями, который вы желаете изменить.
-
На закладке Join (Объединение) конструктора запроса выберите объединение и измениет условие объединения так, как вам хочется.
Вы можете, кроме того, изменить объединение с помощью опции FROM в команде SQL SELECT command. Для получения более подробной информации о предложениях SQL SELECT, генерируемых конструкторами запроса и представления смотрите Как: создавать запросы (Visual FoxPro), Как: посмотреть и отредактировать предложения SQL для представлений и описание команды SELECT - SQL.
Удаление условий объединения
Вы можете удалить объединение между таблицами. Процесс удаления объединения одинаков для конструкторов запроса и представления. Описываемая процедура удаляет объединение в конструкторе запроса.
Для удаления объединения
-
Откройте запрос, содержащий таблицы с объединением, который вы желаете удалить.
-
На закладке Join (Объединение) конструктора запроса, выберите условие объединения и щелкните по Remove (Удалить).
Вы можете, кроме того, выбрать строку объединения между двумя таблицами на поверхности контструкторов запроса и представления. Затем в меню Query (Запрос) щелкните по Remove Join Condition (Удалить условие объединения).