Главная > Sql выборка данных из связанных таблиц

Sql выборка данных из связанных таблиц


4.3.2. Простая выборка из двух связанных таблиц

Допустим, нужно выбрать города и наименования клиентов, заказы у которых были размещены в 1998 году, расположив их в алфавитном порядке по возрастанию. Для этого сначала нужно создать новый запрос в режиме конструктора и добавить в него две таблицы — Заказы (Orders) и Клиенты (Customers). Поскольку между этими таблицами существует постоянная связь на уровне базы данных, то она будет автоматически отображена в конструкторе. Затем в бланк запроса необходимо перетащить поля Город (City) и Название (Company Name) из таблицы Клиенты (Customers) и поле Дата Размещения (OrderDate) из таблицы Заказы (Orders). Для поля ДатаРазмещения (OrderDate) введите условие: Between #01.01.98# And #31. 12.98# и снимите для него флажок Вывод на экран (Show), а для полей Город (City) и Название (CompanyName) установите порядок сортировки по возрастанию (Ascending). Осталось только установить свойство запроса Уникальные значения (Unique Values) в значение Да (Yes) (как и в предыдущем примере), и запрос готов. Таким образом сконструированный запрос изображен на рис.4.25 (в режиме конструктора (Design View)), на рис. 4.26 (в режиме таблицы (Datasheet View)) и на рис. 4.27 (SQL-оператор (SQL View)). Ниже приведены необходимые пояснения.

Рисунок 4.25. Простая выборка из двух связанных таблиц в режиме конструктора (Design View).
Рисунок 4.26. Простая выборка из двух связанных таблиц в режиме таблицы (Datasheet View).
Рисунок 4.27. Простая выборка из двух связанных таблиц в режиме SQL.

Пояснения

  1. Связь на рис. 4.25 является связью один-ко-многим (one-to-many relationship) и обозначена с одной стороны цифрой 1, а с другой — значком бесконечности. Это значит, что таблица Клиенты (Customers) в этой связи участвует на стороне один (one), а таблица Заказы (Orders) — на стороне многие (many). To есть, каждой записи из таблицы Клиенты (Customers) может соответствовать много (от нуля и до бесконечности) записей в таблице Заказы (Orders), в то время как каждой записи таблицы Заказы (Orders) может соответствовать в точности одна запись таблицы Клиенты (Customers).
  2. Конструкции SQL.

    Обратите внимание на то, как в SQL-операторе Microsoft Access задаются связи между таблицами. Как уже ранее упоминалось, в предложении FROM задаются не только наименования исходных таблиц (запросов), но и связи, их объединяющие. В данном примере указано внутреннее объединение между таблицами (INNER JOIN) по полям КодКлиента (CustomerlD) обеих таблиц. Внутреннее объединение означает, что из связанных таблиц выбираются только те записи, значения связанных полей которых совпадают, остальные игнорируются. Следует также обратить внимание на то, как организована запись о связях с точки зрения отношения один-ко-многим (в принципе, это будет изложено позже при более подробном описании языка SQL). Кстати, насколько мне известно, только в Microsoft Access информация о связях указывается в предложении FROM, в остальных системах управления базами данных (СУБД) для этого служит предложение WHERE. Microsoft Access тоже допускает такой синтаксис. В этом случае оператор SQL будет выглядеть примерно так:

    SELECT DISTINCT Клиенты.Город, Клиенты.Название
    FROM Клиенты, Заказы
    WHERE (((Заказы.ДатаРазмещения) Between #1/1/19981
    And #12/31/1998#) And (Клиенты.КодКлиента sql выборка данных из связанных таблиц = Заказы.КодКлиента))
    ORDER BY Клиенты.Город, Клиенты.Название;
     

Предыдущая ] [ Следующая ]


Закрыть ... [X]

Sql запрос на выборку записей из двух связанных таблиц - БД в Вязание жилетов спицами для женщин с схемами


Sql выборка данных из связанных таблиц Mysql - Выборка из 3 связанных таблиц - Stack Overflow на русском
Sql выборка данных из связанных таблиц Выборка данных из связанных таблиц в виде JSON / PostgreSQL /
Sql выборка данных из связанных таблиц Выборка из связанных таблиц Форум PHP Программистов
Sql выборка данных из связанных таблиц SQL-запрос на выборку из нескольких таблиц
Sql выборка данных из связанных таблиц Шаг 8 - Выбор данных из нескольких таблиц
Sql выборка данных из связанных таблиц Основы SQL на примере задачи / Хабрахабр
Sql выборка данных из связанных таблиц Ажурные носочки узором листики (дополнила) - Страна Мам
Sql выборка данных из связанных таблиц ВЯЗАНИЕ ДЛЯ ЖЕНЩИН Две нитки
Sql выборка данных из связанных таблиц Ведение кадрового делопроизводства с нуля: обучение, инструкция