У набір даних можна включати поля з різних таблиць. Таке включення полів називається зв’язуванням таблиць. Зв’язування таблиць може бути внутрішнім і зовнішнім.
Внутрішнє зв’язування таблиць - це найпростіший випадок, коли після слова SELECT перелічуються поля різних таблиць.
Таблиці stat і obsag містять основні і додаткові дані про рекламних агентів. Таблиці зв’язані відношенням „один до одного”, тобто кожному запису першої таблиці відповідає один запис іншої таблиці. Результатний набір даних є об’єднанням полів двох таблиць таким чином, ніби додаткові дані з’єднуються з основними. У таблицях можуть бути вибрані не всі поля, але це не міняє принципу з’єднання.
При використанні внутрішнього з’єднання таблиць з відношенням „один до одного” результат виконання запиту може містити надлишкову інформацію. Для того, щоб в результатному наборі даних отримати повну інформацію про здійснені операції, необхідно скористатися запитом з внутрішнім з’єднанням таблиць, зв’язаних відношенням „один до багатьох”. Наприклад,
select*
fromstat, obsag
wherestat.cod = obsag.cod
У результаті виконання запиту виведуться всі поля і записи таблиці obsag і всі поля таблиці stat.
selectstat.cod, stat.prizv, obsag.suma
fromstat, obsag
wherestat.cod = obsag.cod
У результаті виконання запиту виведуться всі записи полів cod i prizv таблиці stat, а також поля suma таблиці obsag.
select*
fromstat, obsag
wherestat.cod = obsag.cod
order bystat.cod
У результаті виконання запиту виведуться всі поля і записи таблиці obsag і всі поля таблиці stat, причому записи будуть посортовані за полем cod.
У цих запитах застосовується критерій відбору, що обмежує склад записів: кількість записів результатного набору даних дорівнює кількості записів таблиці обсяг операцій obsag, тому що відбираються тільки записи, для яких співпадають значення полів коду.
Без використання операнда WHERE результатний набір даних буде містити також записи з рекламними агентами, що не виконали жодної операції.
При внутрішньому зв’язуванні всі таблиці, поля яких вказуються в SQL-запиті, є рівноправними.
При зовнішньому зв’язуванні таблиць можна вказати, яка з таблиць буде головною, а - яка підлеглою. При використанні зовнішнього зв’язування оператор FROM має такий формат:
FROM <Таблиця1> [< Вид зв’язування>] JOIN <Таблиця2>
ON <Критерії відбору>
Критерій відбору після слова ON задає умову включення записів в набір даних, зі зв’язаних таблиць, зліва і справа від словаJOIN. Яка з таблиць буде головною, визначає видзв’язування:
· LEFT - головна таблиця вказана зліва;
· RIGHT - головна таблиця вказана справа (за замовчуванням).
Запит, в якому використовується зовнішнє зв’язування таблиць:
select*
fromstatleft joinobsag
onstat.cod = obsag.cod
Зв’язуються таблиці „Штат рекламних агентів” (stat) і „Обсяг операцій„ (obsag). Головною є таблиця stat.