АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Секция FROM, логическое связывание таблиц

Читайте также:
  1. B)Вторая предпосылка: патологическое в аналитическом поле.
  2. I Психологическое айкидо
  3. I.2.1 Традиционное общество и мифологическое сознание
  4. III. Разведение спирта с использованием таблиц ГФ XI.
  5. III. Статистические таблицы
  6. IV. Далее в этой лабораторной работе необходимо создать и сохранить запрос для отображения средних цен на все товары по таблице «Товары».
  7. А)простое лигатурное связывание.
  8. Аддиктивное поведение подростков и молодежи как виктимологическое явление.
  9. Активный запрос на создание таблицы
  10. Алгоритм 2.1. Построение выходной таблицы, столбиковой диаграммы и кумуляты
  11. Алгоритм симплексного метода с применением симплекс-таблиц
  12. Анализ ликвидности баланса по относительным показателям за анализируемый период представлен в таблице №15.

Перечень таблиц, из которых производится выборка данных, указывается
в секции FROM. Выборка возможна как из одной таблицы, так и из нескольких логически взаимосвязанных. Логическая взаимосвязь осуществляется с помощью подсекции JOIN. На каждую логическую связь пишется отдельная подсекция. Внутри подсекции указывается условие связи двух таблиц (обычно по условию равенства первичных и вторичных ключей). Примеры для модели данных Сотрудники-Отделы-Города:

Employees  
TabNum Name Position DeptNum Salary
  Иванов Начальник    
  Петров Инж.    
  Сидоров Менеджер    

 

Departments  
DeptNum City Name
    Производственный отдел
    Отдел продаж

 

Cities  
City Name
  Минск
  Москва

 

SELECT Employees.TabNum, Employees.Name,Departments.Name

FROM Employees

JOIN Departments ON Employees.DeptNum =

Departments.DeptNum

Результат запроса будет выглядеть следующим образом:

  Иванов Производственный отдел
  Петров Производственный отдел
  Сидоров Отдел продаж

SELECT Employees.TabNum, Employees.Name, Departments.Name, Cities.Name

FROM Employees

JOIN Departments ON Employees.DeptNum = Departments.DeptNum

JOIN Cities ON Departments.City = Cities.City

Результат запроса будет выглядеть следующим образом:

  Иванов Производственный отдел Минск
  Петров Производственный отдел Минск
  Сидоров Отдел продаж Москва

Пример связывания таблиц по нескольким полям:

SELECT Table1.Field1, Table2.Field2

FROM Table1

JOIN Table2

ON Table2.ID1 =Table1.ID1

AND Table2.ID2 =Table1.ID2

AND ….

Существует несколько типов связывания:

Тип Результат
JOIN Внутреннее соединение. В результирующем наборе присутствуют только записи, значения связанных полей в которых совпадают
LEFT JOIN Левое внешнее соединение. В результирующем наборе присутствуют все записи из Table1 и соответствующие им записи из Table2. Если соответствия нет, поля из Table2 будут пустыми
RIGHT JOIN Правое внешнее соединение. В результирующем наборе присутствуют все записи из Table2 и соответствующие им записи из Table1. Если соответствия нет, поля из Table1 будут пустыми
FULL JOIN Полное внешнее соединение. Комбинация двух предыдущих. В результирующем наборе присутствуют все записи из Table1 и соответствующие им записи из Table2. Если соответствия нет – поля из Table2 будут пустыми. Записи из Table2, которым не нашлось пары в Table1, тоже будут присутствовать в результирующем наборе. В этом случае поля из Table1 будут пустыми.
CROSS JOIN Cartesian product. Результирующий набор содержит все варианты комбинации строк из Table1 и Table2. Условие соединения при этом не указывается.

Проиллюстрируем каждый тип примерами. Модель данных:

Table1     Table2  
Key1 Field1   Key2 Field2
  A     AAA
  В     BBB
  C     CCC
        DDD

SELECT Table1.Field1, Table2.Field2

FROM Table1

JOIN Table2 ON Table1.Key1 = Table2.Key2

Результат:

A AAA
B BBB
B CCC

SELECT Table1.Field1, Table2.Field2

FROM Table1

LEFT JOIN Table2 ON Table1.Key1 = Table2.Key2

Результат:

A AAA
B BBB
B CCC
C  

SELECT Table1.Field1, Table2.Field2

FROM Table1

RIGHT JOIN Table2 ON Table1.Key1 = Table2.Key2

Результат:

A AAA
B BBB
B CCC
  DDD

SELECT Table1.Field1, Table2.Field2

FROM Table1

FULL JOIN Table2 ON Table1.Key1 = Table2.Key2

Результат:

A AAA
B BBB
B CCC
  DDD
C  

SELECT Table1.Field1, Table2.Field2

FROM Table1

CROSS JOIN Table2

Результат:


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)