SQL, або Structured Query Language, є основою маніпуляції та отримання даних у реляційних базах даних. Незалежно від того, чи ви аналітик даних, розробник чи адміністратор баз даних, вміння працювати з SQL-об'єднаннями (joins) та функціями є необхідним для отримання корисних висновків з ваших даних.
У цій статті ми розглянемо кілька основних SQL-операцій, зокрема INNER JOIN, LEFT JOIN, RIGHT JOIN, надаючи чіткі пояснення та практичні приклади.
Що таке SQL-об'єднання?
SQL-об'єднання (joins) поєднують рядки з двох або більше таблиць на основі спільної колонки. Об'єднання необхідні для створення складних запитів, які отримують дані з кількох таблиць.
1. INNER JOIN
INNER JOIN повертає рядки, де є співпадіння в обох таблицях.
Синтаксис:
SELECT column1, column2, ...
FROM table1
INNER JOIN table2
ON table1.common_column = table2.common_column;
Приклад:
Уявімо, що в нас є дві таблиці:
Таблиця: Customers
Таблиця: Orders
Запит:
SELECT Customers.Name, Orders.Product
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
Результат:
2. LEFT JOIN
LEFT JOIN повертає всі рядки з лівої таблиці та співпадаючі рядки з правої таблиці. Якщо співпадіння не знайдено, для правої таблиці буде повернуто NULL.
Синтаксис:
SELECT column1, column2, ...
FROM table1
LEFT JOIN table2
ON table1.common_column = table2.common_column;
Приклад:
Використовуємо ті самі таблиці:
Запит:
SELECT Customers.Name, Orders.Product
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
Результат:
3. RIGHT JOIN
RIGHT JOIN — це протилежність LEFT JOIN. Він повертає всі рядки з правої таблиці та співпадаючі рядки з лівої таблиці. Якщо співпадіння не знайдено, для лівої таблиці буде повернуто NULL.
Синтаксис:
SELECT column1, column2, ...
FROM table1
RIGHT JOIN table2
ON table1.common_column = table2.common_column;
Приклад:
Запит:
SELECT Customers.Name, Orders.Product
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
Результат:
(Примітка: Цей запит дає той самий результат, що й INNER JOIN у цьому випадку, оскільки всі замовлення мають відповідного клієнта.)
Перекладено з: Understanding SQL Joins