En un SELECT el uso de RIGHT JOIN permite obtener información de dos tablas, pero siempre considerando que los registros resultantes deben estar en la segunda, pudiendo regresar los que están en la primera tabla, o no. Las dos variantes de right join se ejemplifican a continuación.
Right Join con todos los registros de la segunda tabla
En este caso se hace un Select a la tabla A y un Right join con la tabla B, y los registros resultantes son todos los de la tabla B, aún y cuando no exista su registro correspondiente en la tabla A.
La estructura general de joins es como sigue
SELECT campos FROM A
RIGHT JOIN B ON A.llave=B.llave
Datos de prueba
Para ejemplificar estos casos se usarán las mismas tablas y registros que se ocuparon al revisar el Left join:
Ejemplos de primer RIGHT JOIN
Usando las tablas de PERSONAL y DIRECCIONES se puede hacer un RIGHT JOIN de la siguiente manera
SELECT A.*, B.* FROM personal A
RIGHT JOIN direcciones B ON A.id = B.id
El resultado contiene todos los registros de la segunda tabla (direcciones) tengan o no su correspondencia con la primera tabla (personal)
RIGHT JOIN con los datos de la segunda tabla, pero no la intersección
En este caso se toma como base la segunda tabla, eliminando los que están en la primera, es decir, la intersección. Para ejecutar este tipo join se aplica una ligera variación (añadiendo la cláusula WHERE):
SELECT A.*, B.*
FROM personal A
RIGHT JOIN direcciones B
ON A.id = B.id
WHERE A.id IS NULL
Como se puede ver, solo se obtienen los registros que están en la segunda tabla que NO están en la primera. En el primer SELECT aparecen los 5 registros de la segunda tabla, y en el segundo, aparecen solo dos.