SQL - UNIONES DERECHAS
El SQL RIGHT JOINdevuelve todas las filas de la tabla de la derecha, incluso si no hay coincidencias en la tabla de la izquierda. Esto significa que si la cláusula ON coincide con 0 (cero) registros en la tabla de la izquierda; la combinación seguirá devolviendo una fila en el resultado, pero con NULL en cada columna de la tabla de la izquierda.
Esto significa que una combinación derecha devuelve todos los valores de la tabla derecha, más los valores coincidentes de la tabla izquierda o NULL en caso de que no haya un predicado de combinación coincidente.
Sintaxis
La sintaxis básica de un RIGHT JOIN es como sigue.
SELECT table1.column1, table2.column2...
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field;
Ejemplo
Considere las siguientes dos tablas,
Table 1 - La tabla CLIENTES es la siguiente.
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Table 2 - La tabla de PEDIDOS es la siguiente.
+-----+---------------------+-------------+--------+
|OID | DATE | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 | 3 | 3000 |
| 100 | 2009-10-08 00:00:00 | 3 | 1500 |
| 101 | 2009-11-20 00:00:00 | 2 | 1560 |
| 103 | 2008-05-20 00:00:00 | 4 | 2060 |
+-----+---------------------+-------------+--------+
Ahora, unamos estas dos tablas usando RIGHT JOIN de la siguiente manera.
SQL> SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
Esto produciría el siguiente resultado:
+------+----------+--------+---------------------+
| ID | NAME | AMOUNT | DATE |
+------+----------+--------+---------------------+
| 3 | kaushik | 3000 | 2009-10-08 00:00:00 |
| 3 | kaushik | 1500 | 2009-10-08 00:00:00 |
| 2 | Khilan | 1560 | 2009-11-20 00:00:00 |
| 4 | Chaitali | 2060 | 2008-05-20 00:00:00 |
+------+----------+--------+---------------------+