Comando Join
El comando JOIN en Mysql,sirve para combinar dos o mas tablas según las designaciones de variables que queramos o necesitemos.
Unión entre varias tablas,devuelve la información que encuentra esa unión (relación).
SINTAXIS
select * from tabla1 inner join tabla2 on tabla1.id=tabla2.id inner join tabla3 on tabla2.id=tabla3.id2;
CONSULTAS RELACIONALES(Entre varias tablas)
VISUALIZAR EL CÓDIGO DEL LIBRO,EL NOMBRE DEL LIBRO,EL CÓDIGO DEL AUTOR Y EL NOMBRE DEL AUTOR CON SUS RESPECTIVOS LIBROS ESCRITOS
ANÁLISIS
1.Que desea consultar y de que tablas
Libro.idlibro
Libro.descripcion
autor.codautor
autor.nombre
2.Que tablas se ven afectadas o involucradas
Libro
Autor
Liautedi
3. Condición (es)
N/A
4.Como se relacionan las tablas
Id.libro=Liautedi.idlibro
liautedi.codautor=autor.codautor
5.Que comando se debe utilizar
select-Join
Sintaxis
select distinct libro.idlibro,libro.descripcion,autor.codautor,autor.nombre from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join autor on liautedi.codautor=autor.codautor;
NOTA
Para exportar la consulta a excel después de verificar que funciona,se vuelve a ingresar el comando y se añade
into outfile 'c:/xampp/libroautorJoin.xls';
ejemplo
select distinct libro.idlibro,libro.descripcion,autor.codautor,autor.nombre from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join autor on liautedi.codautor=autor.codautor into outfile 'c:/xampp/libroautorJoin.xls';
VISUALIZAR LOS AUTORES CON LAS EDITORIALES QUE LOS PUBLICA
ANÁLISIS
1.Que desea consultar y de que tablas
autor.nombre
editorial.nombre
2.Que tablas se ven afectadas o involucradas
Autor
Liautedi
editorial
3. Condición (es)
N/A
4.Como se relacionan las tablas
liautedi.codautor=autor.codautor
liautedi.codedit=editorial.codedit
5.Que comando se debe utilizar
select-Join
Sintaxis
select distinct autor.nombre,editorial.nombre from autor inner join liautedi on liautedi.codautor=autor.codautor inner join editoral on liautedi.codedit=editorial.codedit;
COMANDO LEFT JOIN
Se utiliza para saber que registros no tienen correspondencia en otra tabla.Verifica de una tabla izquierda a una tabla derecha,si no encuentra coincidencias se genera una fila extra con todos los campos ceteados a NULL.
VISUALIZAR QUE LIBROS NO SE LES HA ASIGNADO UN AUTOR
SINTAXIS
select libro.idlibro,libro.descripcion,liautedi.idlibro from libro left join liautedi on libro.idlibro=liautedi.idlibro where liautedi.idlibro is null;
VISUALIZAR LAS ASIGNATURAS QUE NO POSEEN LIBROS
SINTAXIS:
select asignatura.nombre,libro.codigomat from asignatura left join libro on asignatura.codigomat=libro.codigomat where libro.codigomat is null;
COMANDO RIGHT JOIN
Opera del mismo modo que el left join,solo que la búsqueda de coincidencias las realiza de modo contrario,es decir busca valores de coincidencias desde la tabla de la derecha hacia la tabla que esta a la izquierda y sucede lo mismo que en el left Join,si no encuentra coincidencias se genera una fila extra con todos los campos ceteados en NULL.
VISUALIZAR EL LISTADO DE LOS LIBROS QUE TIENEN AL MENOS UN AUTOR ASIGNADO
SINTAXIS:
select libro.idlibro,libro.descripcion,liautedi.idlibro from libro right join liautedi on libro.idlibro=liautedi.idlibro;