Види JOINів в SQL
1. INNER JOIN
INNER JOIN використовується для отримання записів, що мають спільні значення в різних таблицях. Результатом запиту будуть лише ті рядки, які мають мають однакове значення в обох таблицях.
Використання: цей тип операторів JOIN корисний, коли потрібно об'єднати рядки з двох таблиць, заснованих на спільному полі, і вам потрібно бачити лише ті записи, які існують у обох таблицях.
Приклад синтаксису:
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID
2. LEFT JOIN
LEFT JOIN повертає всі записи з лівої таблиці (таблиці, що стоїть перед JOIN), а також спільні записи з правої таблиці (таблиці, що стоїть після JOIN). Якщо спільних записів немає, результатом для правої таблиці будуть NULL значення.
Використання: LEFT JOIN використовується, коли потрібно показати всі записи з лівої таблиці, незалежно від того, чи є відповідні записи в правій таблиці.
Приклад синтаксису:
SELECT CategoryName, ProductName
FROM Categories
LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID
3. RIGHT JOIN
RIGHT JOIN працює протилежно до LEFT JOIN. Цей оператор повертає всі записи з правої таблиці та спільні записи з лівої таблиці. Для записів, які не мають відповідностей, у лівій таблиці будуть виведені значення. NULL
Використання: коли потрібно показати всі записи з правої таблиці, незалежно від того, чи є відповідності у лівій таблиці.
Приклад синтаксису:
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID
4. FULL JOIN (FULL OUTER JOIN)
FULL JOIN повертає записи, коли є збіг хоча б в одній з таблиць. Якщо в одній таблиці є записи, які не мають збігу в іншій таблиці, вони також будуть включені до результату зі значеннями NULL у стовпцях таблиці, де відповідності немає.
Використання: коли потрібно побачити всі записи з обох таблиць, незалежно від того, чи є між ними відповідності.
Приклад синтаксису:
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer
Використання різних типів операторів JOIN в SQL дозволяє ефективно об'єднувати дані з різних таблиць.