Оператор 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; |
Ось як працює цей код:

Тут ми вибираємо стовпці customer_id та first_name (з таблиці Customers) та стовпець amount (з таблиці Orders). В результате отримуємо ті рядки, в яких є збіг між customer_id (таблиці Customers) та customer (таблиці Orders) разом зі всіма іншими рядками з (правої) таблиці Orders.
Синтаксис оператора RIGHT JOIN
Синтаксис оператора RIGHT JOIN наступний:
|
1 2 3 4 |
SELECT стовпці FROM таблиця1 RIGHT JOIN таблиця2 ON таблиця1.назва_стовпця = таблиця2.назва_стовпця; |
Оператор RIGHT JOIN з оператором WHERE
Ось приклад використання оператора RIGHT JOIN з оператором WHERE:
|
1 2 3 4 5 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers RIGHT JOIN Orders ON Customers.customer_id = Orders.customer WHERE Orders.amount >= 500; |
Тут ми об’єднуємо дві таблиці та вибираємо рядки, у яких сума (amount) більше або дорівнює 500.
Оператор RIGHT JOIN з псевдонімами AS
Ми можемо використовувати псевдоніми (оператор AS) з оператором RIGHT JOIN, щоб зробити код коротшим та чистішим. Наприклад:
|
1 2 3 4 |
SELECT C.cat_name, P.prod_title FROM Categories AS C RIGHT JOIN Products AS P ON C.cat_id = P.cat_id; |
Тут ми вибираємо спільні рядки між таблицями Categories та Products.
Порівняння RIGHT JOIN з іншими JOIN-ами
RIGHT JOIN проти RIGHT OUTER JOIN
Ми можемо використовувати RIGHT OUTER JOIN замість 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; |
рівнозначний
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers RIGHT OUTER JOIN Orders ON Customers.customer_id = Orders.customer; |
RIGHT JOIN проти INNER JOIN
Оператор RIGHT JOIN вибирає не тільки спільні рядки між двома таблицями, але й всі інші рядки з правої таблиці. Тоді як оператор INNER JOIN вибирає лише спільні рядки між двома таблицями.
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; |
Результат (див. таблиці):

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 проти LEFT JOIN
Оператор RIGHT JOIN вибирає не тільки спільні рядки, але й всі інші з правої таблиці. Тоді як оператор LEFT JOIN вибирає спільні рядки, а також всі інші з лівої таблиці.
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; |
Результат (див. таблиці):

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; |
Результат:

RIGHT JOIN проти FULL OUTER JOIN
Оператор RIGHT JOIN вибирає спільні рядки між двома таблицями, а також всі інші з правої таблиці. Тоді як оператор FULL OUTER JOIN вибирає всі рядки з обох таблиць.
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; |
Результат (див. таблиці):

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; |
Результат:

