Наглядные примеры соединений в запросе






Демонстрация различных вариантов соединения двух таблиц в запросе.

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

Эта простая обработка демонстрирует наглядные ответы на вопросы  соединения двух таблиц "Офисы" и "Города":

Даны две таблицы: «Офисы» и «Города» (в которых эти офисы расположены). Таблицы связаны по City_ID. На текущий момент в таблицах есть следующие данные:

 

Офисы

 

Города

Office_ID

Name

City_ID

City_ID

Name

1

Офис 1

22

3

Киев

2

Офис 2

3

 

22

Москва

3

Офис 3

7

 

25

Минск

4

Офис 4

22

 

 

 

 

Сколько строк будет в результате при выполнении следующих запросов?

 

a.

ВЫБРАТЬ

         Города.name КАК Город,

         Офисы.name КАК Офис

ИЗ

         Города КАК Города 
ПОЛНОЕ СОЕДИНЕНИЕ Офисы КАК Офисы

ПО ИСТИНА

b.

ВЫБРАТЬ

         Города.name КАК Город,

         Офисы.name КАК Офис

ИЗ

         Города КАК Города

                       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Офисы КАК Офисы

                       ПО Города.city_id = Офисы.city_id

c.

ВЫБРАТЬ

         Города.name КАК Город,

         Офисы.name КАК Офис

ИЗ

         Города КАК Города

                       ЛЕВОЕ СОЕДИНЕНИЕ Офисы КАК Офисы

                       ПО Города.city_id = Офисы.city_id

d.

ВЫБРАТЬ

         Города.name КАК Город,

         Офисы.name КАК Офис

ИЗ

         Офисы КАК Офисы

                       ЛЕВОЕ СОЕДИНЕНИЕ Города КАК Города

                       ПО (Города.city_id = Офисы.city_id)

e.

ВЫБРАТЬ

         Города.name КАК Город,

         Офисы.name КАК Офис

ИЗ

         Офисы КАК Офисы

                       ПОЛНОЕ СОЕДИНЕНИЕ Города КАК Города

                       ПО (Города.city_id = Офисы.city_id)

 

 

 

 
При первом запуске необходимые поля в таблицах заполняются автоматически данными из задачи, текст запроса заполняется текстом варианта e
 
Обработка тестировалась на версии платформы 8.3.14.1779

1 Comment

  1. корум

    (0) Упрости для ленивых.

     Запрос.Текст = «ВЫБРАТЬ * ПОМЕСТИТЬ офисы ИЗ &офисы КАК офисы ; ВЫБРАТЬ * ПОМЕСТИТЬ города ИЗ &города КАК города ;»+Объект.ТекстЗапроса;
    
    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *