Навчитися будувати складні конструкції SELECT для вибірки даних із кількох таблиць.
INNER JOIN
) та зовнішнього (LEFT JOIN
і RIGHT JOIN
) з’єднання таблиць. Продемонструвати різницю між ними.При вибірці даних з БД часто потрібні дані містяться в кількох таблицях, пов’язаних між собою за допомогою спільних полів і відношень між ними. Для того, щоб вибрати дані з кількох таблиць і мати можливість використовувати при цьому засоби SQL для обробки даних (фільтрації, пошуку, групування, використання агрегатних функцій тощо) використовують об’єднання кількох таблиць в одну, згідно з певними критеріями. Результат об’єднання існує тільки y момент виконання запиту.
При виборі однієї таблиці в іменах стовпців не вказують імені таблиці — джерела даних. При об’єднанні таблиць часто трапляється, що різні таблиці мають поля з однаковими іменами. Щоб СУБД могла розрізнити такі поля, при виконанні запиту слід використовувати повне ім’я поля.
З’єднання таблиць дозволяє робити конструкція JOIN
. Вона може мати один з таких форматів:
<таблиця> INNER JOIN <таблиця> [ON <умова>]
<таблиця> LEFT | RIGHT [OUTER] JOIN <таблиця> ON <умова>
де під <таблиця>
розуміють таку конструкцію:
<Ім'я таблиці> [[AS ] псевдонім]
Псевдоніми вживаються для того, щоб скоротити назву таблиці при використанні в іменах полів, якщо вона надто довга (інакше запит буде дуже громіздкий), або щоб можна було виконати об’єднання таблиці з цією ж таблицею (у цьому випадку без псевдонімів, навіть при використанні імені таблиці, не можна розрізнити полів).
Розглянемо приклади виконання запитів з JOIN
(зауважимо, що БД employees, яка використовується для виконання роботи має не таку структуру, як наведена в прикладах, тому результат може відрізнятись або виникатиме помилка):
INNER JOIN
Ключове слово INNER JOIN
вибирає записи, які мають відповідні значення в обох таблицях.