Розуміння SQL-об’єднань

SQL, або Structured Query Language, є основою маніпуляції та отримання даних у реляційних базах даних. Незалежно від того, чи ви аналітик даних, розробник чи адміністратор баз даних, вміння працювати з SQL-об'єднаннями (joins) та функціями є необхідним для отримання корисних висновків з ваших даних.

У цій статті ми розглянемо кілька основних SQL-операцій, зокрема INNER JOIN, LEFT JOIN, RIGHT JOIN, надаючи чіткі пояснення та практичні приклади.

pic

Що таке SQL-об'єднання?

SQL-об'єднання (joins) поєднують рядки з двох або більше таблиць на основі спільної колонки. Об'єднання необхідні для створення складних запитів, які отримують дані з кількох таблиць.

1. INNER JOIN

INNER JOIN повертає рядки, де є співпадіння в обох таблицях.

Синтаксис:

SELECT column1, column2, ...  
FROM table1  
INNER JOIN table2  
ON table1.common_column = table2.common_column;

Приклад:

Уявімо, що в нас є дві таблиці:

Таблиця: Customers

pic

Таблиця: Orders

pic

Запит:

SELECT Customers.Name, Orders.Product  
FROM Customers  
INNER JOIN Orders  
ON Customers.CustomerID = Orders.CustomerID;

Результат:

pic

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;

Результат:

pic

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;

Результат:

pic

(Примітка: Цей запит дає той самий результат, що й INNER JOIN у цьому випадку, оскільки всі замовлення мають відповідного клієнта.)

Перекладено з: Understanding SQL Joins

Leave a Reply

Your email address will not be published. Required fields are marked *