USP.PNUM, USP.SNUM
FROM STUDENTS, USP
WHERE STUDENTS.SNUM *> USP.SNUM;
Результат цього запиту, приведений не повністю через його значні розміри, буде наступним:
SFAM SNUM PNUM SNUM
Поляків 3412 NULL NULL
Огарева 3413 2001 3412
Огарева 3413 2003 3412
Гріценко 3414 2001 3412
Гріценко 3414 2003 3412
Гріценко 3414 2003 3413
Даний запит виводить інформацію про студентів і про здані учбові предмети, при цьому дані про предмети вибираються для студентів, що мають номер менше, ніж поточний. У випадку, якщо таких не виявляється. SQL формує рядок з першої таблиці, заповнюючи NULL значеннями дані, які винні були бути отримані з другої.
Хоча система запису зовнішнього об'єднання достатньо зручна, вона має свої недоліки. Річ у тому, що проблеми із записом зовнішніх об'єднань виникають при розширенні об'єднання до трьох або більш таблиць Наприклад, при записі
TABLE1 *=* TABLE2 *=* TABLES фактично виконуєтьсязовнішнє об'єднання(TABLE1 *=* TABLE2) *=* TABLE3
що, взагалі кажучи, приведе до різних результатів.
Для творців стандарту SQL2 зовнішні об'єднання були серйозною проблемою, т.к. зовнішні об'єднання є порою єдиним способом надання результатів ряду украй необхідних запитів. Тому в стандарті SQL2 був визначений абсолютно новий метод підтримки зовнішніх об'єднань: в специфікації стандарту SQL2 підтримка зовнішніх об'єднань здійснюється в пропозиції FROM із спеціальним синтаксисом, що дозволяє користувачу точно визначити, як початкові таблиці повинні бути з'єднані в запиті.
Наприклад, вже розглянутий нами запит внутрішнього об'єднання в стандарті SQL1 виглядає так:
SELECT STUDENTS.SFAM, STUDENTS.SNUM
USP.PNUM, USP.SNUM
FROM STUDENTS, USP
WHERE STUDENTS.SNUM = USP.SNUM;
а в стандарті SQL2 - так (хоча використовування першого варіанту припускає):
SELECT STUDENTS.SFAM, STUDENTS.SNUM