65 - Varias tablas (right join) |
"right join" opera del mismo modo que "left join" sólo que la búsqueda de coincidencias la realiza de modo inverso, es decir, los roles de las tablas se invierten, busca coincidencia de valores desde la tabla de la derecha en la tabla de la izquierda y si un valor de la tabla de la derecha no encuentra coincidencia en la tabla de la izquierda, se genera una fila extra (una por cada valor no encontrado) con todos los campos seteados a "null".
Trabajamos con las tablas de una librería:
-libros: codigo (clave primaria), titulo, autor, codigoeditorial, precio, cantidad y -editoriales: codigo (clave primaria), nombre.
Estas sentencias devuelven el mismo resultado:
select nombre,titulo from editoriales as e left join libros as l on e.codigo=l.codigoeditorial; select nombre,titulo from libros as l right join editoriales as e on e.codigo=l.codigoeditorial;
La primera busca valores de "codigo" de la tabla "editoriales" (tabla de la izquierda) coincidentes con los valores de "codigoeditorial" de la tabla "libros" (tabla de la derecha). La segunda busca valores de la tabla de la derecha coincidentes con los valores de la tabla de la izquierda.