Оператор INNER JOIN об’єднує дві таблиці на основі спільного стовпця і вибирає записи зі співпадаючими значеннями в цих стовпцях. Наприклад:
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer; |
Ось як працює цей код:

Тут ми вибираємо стовпці customer_id та first_name (з таблиці Customers) та стовпець amount (з таблиці Orders). В результате отримуємо ті рядки, в яких є збіг між customer_id (таблиці Customers) та customer (таблиці Orders).
Синтаксис оператора INNER JOIN
Синтаксис оператора INNER JOIN наступний:
|
1 2 3 4 |
SELECT стовпці FROM таблиця1 INNER JOIN таблиця2 ON таблиця1.ім'я_стовпця = таблиця2.ім'я_стовпця; |
Оператор INNER JOIN з оператором WHERE
Ось приклад використання оператора INNER JOIN з оператором WHERE:
|
1 2 3 4 5 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer WHERE Orders.amount >= 500; |
Тут ми об’єднуємо дві таблиці та вибираємо рядки, у яких сума (amount) більше або дорівнює 500.

Оператор INNER JOIN з псевдонімами
Ми можемо використовувати псевдоніми (оператор AS) з оператором INNER JOIN, щоб зробити код коротшим та чистішим. Наприклад:
|
1 2 3 4 |
SELECT C.cat_name, P.prod_title FROM Categories AS C INNER JOIN Products AS P ON C.cat_id = P.cat_id; |
Тут ми вибираємо спільні рядки між таблицями Categories та Products.

Оператор INNER JOIN з трьома таблицями
Ми також можемо об’єднати більше двох таблиць, використовуючи оператор INNER JOIN. Наприклад:
|
1 2 3 4 5 6 |
SELECT C.customer_id, C.first_name, O.amount, S.status FROM Customers AS C INNER JOIN Orders AS O ON C.customer_id = O.customer INNER JOIN Shippings AS S ON C.customer_id = S.customer; |
Тут ми:
об’єднуємо таблиці Customers та Orders на основі customer_id;
об’єднуємо таблиці Customers та Status на основі customer_id.
Команда повертає ті рядки, у яких є збіг між значеннями стовпців в обох умовах об’єднання.

Примітка: Для запуску цієї команди у кожній таблиці має бути спільний стовпець customer_id (або customer).
Порівняння INNER JOIN з іншими JOIN-ами
INNER JOIN проти JOIN
Ми можемо використовувати JOIN замість INNER JOIN. По суті, ці два оператори однакові. Наприклад, наступний фрагмент коду:
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer; |
рівнозначний
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers JOIN Orders ON Customers.customer_id = Orders.customer; |
INNER JOIN проти LEFT JOIN
Оператор INNER JOIN вибирає спільні рядки між двома таблицями, тоді як оператор LEFT JOIN вибирає як спільні рядки, так і всі інші з лівої таблиці.
INNER JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат (повні дані):

LEFT JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат:

INNER JOIN проти RIGHT JOIN
Оператор INNER JOIN вибирає спільні рядки між двома таблицями, тоді як оператор RIGHT JOIN вибирає як спільні рядки, так і всі інші з правої таблиці.
INNER JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат (повні дані):

RIGHT JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers RIGHT JOIN Orders ON Customers.customer_id = Orders.customer_id; |
Результат:

INNER JOIN проти FULL OUTER JOIN
Оператор INNER JOIN вибирає спільні рядки між двома таблицями, тоді як оператор FULL OUTER JOIN вибирає всі рядки з обох таблиць.
INNER JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат (повні дані):

FULL OUTER JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers FULL OUTER JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат:


Нарешті розібралася з JOIN !!! Дуже легко до зрозуміння поданий матеріал. Дякую ❤️
Дякую за цю статтю!
Вона дуже допомогла у навчанні самостійному по написанню коду