Если в запросе или представлении участвует множество таблиц, вы можете контролировать, какие записи запроса или представления будут извлечены с помощью введения или изменения условий объединения между таблицами. Работа с объединения аналогична как для запросов, так и для представлений; поэтому процедуры используют в качестве примеров запросы. Хотя вы можете запустить запрос или представление без объединений, результат будет иметь малое практическое применение и может потребовать большого количества времени для своей работы.

Для получения более подробной информации об условиях смотрите описание Условия объединения для таблиц, запросов и представлений.

Введение условий объединения

Объединения обычно появляются автоматически, когда вы добавляете в запрос или представление таблицы. Однако, если имена полей в связываемых таблицах не соответствуют друг другу, вам может потребоваться указать объединение, желаемое вами для таблиц и добавить их, используя диалоговое окно Join Condition (Условие объединения) в конструкторе запросов и представлений (Query and View designers).

Процесс добавления соединения аналогичен для обоих конструкторов. Описываемая процедура вводит объедигнение в конструкторе запроса (Query Designer).

Для создания объединения между таблицами с помощью Query Designer (Конструктора запроса)

  1. Создайте или откройте запрос.

  2. Добавьте в запрос таблицу, что у вас было две или более таблиц.

  3. В полоске инструментов Query Designer (Конструктора запроса) шелкните по Add Join (Добавить объединение).

  4. В диалоговом окне Join Condition (Условие объединения) выберите в двух таблицах связанные имена полей.

    NoteЗамечание

    Установите объдинение для колонок, только если они имеют один и тот же размер и тип данных.

  5. Выберите тип соединения и щелкните по 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 для указания условия объединения:

 CopyCode imageСкопировать код
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 (Конструкторе запроса).

Для изменения объединения

  1. Откройте запрос, содержащий таблицы с объединениями, который вы желаете изменить.

  2. На закладке Join (Объединение) конструктора запроса выберите объединение и измениет условие объединения так, как вам хочется.

Вы можете, кроме того, изменить объединение с помощью опции FROM в команде SQL SELECT command. Для получения более подробной информации о предложениях SQL SELECT, генерируемых конструкторами запроса и представления смотрите Как: создавать запросы (Visual FoxPro), Как: посмотреть и отредактировать предложения SQL для представлений и описание команды SELECT - SQL.

Удаление условий объединения

Вы можете удалить объединение между таблицами. Процесс удаления объединения одинаков для конструкторов запроса и представления. Описываемая процедура удаляет объединение в конструкторе запроса.

Для удаления объединения

  1. Откройте запрос, содержащий таблицы с объединением, который вы желаете удалить.

  2. На закладке Join (Объединение) конструктора запроса, выберите условие объединения и щелкните по Remove (Удалить).

Вы можете, кроме того, выбрать строку объединения между двумя таблицами на поверхности контструкторов запроса и представления. Затем в меню Query (Запрос) щелкните по Remove Join Condition (Удалить условие объединения).

Смотрите также