El RIGHT JOIN de SQL incluye todas las filas de la tabla derecha y las que coinciden desde la izquierda. Para que no coincida desde la derecha, se devuelve NULL en las columnas correspondientes.
Esta es la diferencia clave entre un RIGHT JOIN de SQL y un INNER JOIN. Mientras que un inner join sólo devuelve las filas que coinciden con la condición de unión, en un Right outer join se garantiza que todas las filas de las tablas de la derecha se incluyen en el resultado.
Comprueba esta ilustración:
Comprueba los resultados de Fred y observa que no hay ningún Producto que coincida, es NULL. Además, el no está incluido en el resultado.
Otro nombre para la unión derecha es Right outer join.
La forma general de RIGHT JOIN es:
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Notas:
- En este ejemplo la tabla2 es la tabla derecha y la tabla1 la izquierda.
- Si no hay coincidencia entre los valores de commonColumn, table1.column1 devuelve NULL
SQL RIGHT JOIN Ejemplo
No todas las personas de la base de datos AdventureWorks son empleados. Vamos a listar cada persona, y algunos de sus datos de empleo, si existen. Para ello utilizaremos un RIGHT JOIN.
Tenga en cuenta que es un RIGHT JOIN, ya que la tabla de personas, que tiene todas las filas que deseamos devolver, está en el lado derecho del operador JOIN.
Mire los resultados y observe que hay NULL’s para algunas personas. Esto se debe a que no hay entradas correspondientes en la tabla de Empleados. El RIGHT JOIN está funcionando como se anuncia, devuelve todas las coincidencias, y un NULL donde no existe ninguna.
Puntos importantes:
Cuando trabaje con RIGHT JOIN tenga en cuenta que su coincidencia de una tabla a otra puede coincidir con múltiples filas. Es decir, su resultado puede tener más filas en el resultado que las que tiene en cualquiera de las dos tablas.
Cuando las columnas no coinciden, la consulta la fila de la derecha, y NULL para las columnas de la tabla de la izquierda..