Найважливішою особливістю запитів SQL є їхня здатність визначати зв'язки між декількома таблицями й виводити інформацію з них у термінах цих зв'язків. Такі операції називаються об'єднанням, що є одним з видів операцій у реляційних БД - адже це є основою реляційного підходу до зберігання даних у таблицях. Використовуючи об'єднання, відбувається безпосереднє зв'язування інформації з будь-яким номером таблиці, і, таким чином, створюються зв'язки між порівнянними частинами даних.
При багатотабличному запиті, таблиці, представлені у вигляді списку в команді FROM, відокремлюються друг від друга комами. Предикат запиту може посилатися до будь-якого стовпця будь-якої зв'язаної таблиці й, отже, може використатися для зв'язку ними. Звичайно предикат порівнює значення в стовпцях різних таблиць, щоб визначити, чи задовольняє WHERE установленій умові. До цього імена таблиць у запитах опускалися, тому запитувалася тільки одна таблиця одночасно. Навіть при запиті з декількох таблиць допускається опускати їхні імена, якщо, звичайно, вони різні. Тепер же виникає необхідність використання імен стовпців і таблиць, оскільки в багатотабличному запиті можуть виникати неоднозначності.
Припустимо необхідно поставити у відповідність викладачеві навчальні предмети, які він веде. Фактично SQL прийде вибирати з таблиці викладачів відповідний йому код й, переглядаючи таблицю предметів, здійснювати пошук відповідного коду. Це можна реалізувати наступним запитом:
SELECT TEACHERS.TFAM, PREDMET.PNAME
FROM TEACHERS, PREDMET
WHERE TEACHERS.TNUM = PREDMET. TNUM;
Результат цього запиту представлений нижче:
TFAM PNAME
---------------------------------------------
Викулина Фізика
Костыркин Хімія
Казанко Математика
Позднякова Економіка
Загарийчук Філософія
Так як поле TNUM є й у таблиці викладачів, і в таблиці предметів, то імена таблиць повинні використатися як префікси, хоча це необхідно тільки в тому випадку, коли два або більше поля мають те саме ім'я. Однак у кожному разі включати ім'я таблиці в запити з об'єднанням зручно для кращого розуміння й несуперечності одержуваних результатів.
При виконанні багатотабличного запиту, SQL досліджує кожну комбінацію рядків двох або більше можливих таблиць і перевіряє ці комбінації по їхніх предикатах. Якщо комбінація робить таке значення, що робить предикат вірним, то значення буде обрано для висновку.
У попередньому прикладі був установлений зв'язок між двома таблицями в об'єднанні, але, загалом кажучи, ці таблиці, уже були з'єднані через поле TNUM. Цей зв'язок називається станом довідкової цілісності, і, використовуючи таке об'єднання в багатотабличному запиті, можна здійснювати вибірку даних в термінах цього зв'язку. Виходить, у розглянутому прикладі об'єднання стовпці використаються для визначення предиката запиту, при цьому TNUM стовпці вилучені з висновку для обох таблиць, тому що й без цього зрозуміло, які викладачі ведуть той або інший навчальний предмет.
У свою чергу, об'єднання в багатотабличних запитах, які використають предикати, засновані на рівностях, називаються об'єднаннями по рівності. Об'єднання по рівності це найбільш загальний вид об'єднання, однак, існують й інші види об'єднань - фактично можна використати кожної з реляційних операторів. Прикладом іншого виду об'єднання може служити наступний запит:
SELECT TEACHERS.TFAM, PREDMET.PNAME
FROM TEACHERS, PREDMET
WHERE TEACHERS.TFAM < PREDMET.PNAME
AND TEACHERS.TFAM BETWEEN 'К' AND 'С';
Результат цього запиту такий:
TFAM PNAME
-------------------------------------------
Костыркин Фізика
Костыркин Хімія
Костыркин Математика
Костыркин Філософія
Костыркин Економіка
Казанко Фізика
Казанко Хімія
Казанко Математика
Казанко Філософія
Казанко Економіка
Познякова Фізика
Познякова Хімія
Познякова Філософія
Познякова Економіка
У цьому випадку запит навряд чи буде мати практичне значення - з його допомогою виводиться інформація про викладачів, прізвище яких за алфавітом розташоване раніше, ніж найменування навчального предмета з таблиці PREDMET, при цьому вибираються викладачі із прізвищем, що розміщене між літерами К и С.
Допускається також створювати запити, що поєднують більше двох таблиць. Наприклад, необхідно вивести список оцінок, виставлених тим або іншим викладачем. Тоді запит буде поєднувати відразу три таблиці:
SELECT TEACHERS.TFAM, USP.OCENKA
FROM TEACHERS, PREDMET, USP
WHERE TEACHERS.TNUM = PREDMET.TNUM
AND PREDMET.PNUM = USP.PNUM;
У результаті буде одержано:
TFAM OCENKA
-----------------------------------
Викулина 5
Казанко 4
Казанко 4
Позднякова 3
Загарийчук 5
Таким чином, при об'єднанні таблиць, мабуть, добре проглядається логіка зв'язку між даними й можна більше не обмежуватися переглядом однієї таблиці в кожен момент часу. Крім того, об'єднання дозволяє робити складні порівняння між будь-якими полями будь-якого числа таблиць і використати отримані результати для того, щоб вирішувати - яку інформацію хотілося б бачити.