Sunteți pe pagina 1din 8

CONSULTAS COMBINADAS

JOINS

CONSULTAS COMBINADAS.

Habitualmente cuando necesitamos recuperar la informacin de una base de datos nos encontramos con que dicha informacin se encuentra repartida en varias tablas, referenciadas a travs de varios cdigos. De este modo si tuviramos una tabla de ventas con un campo cliente, dicho campo contendra el cdigo del cliente de la tabla de cliente. Sin embargo est forma de almacenar la informacin no resulta muy til a la hora de consultar los datos. SQL nos proporciona una forma fcil de mostrar la informacin repartida en varias tablas, las consultas combinadas o JOINS.

CONSULTAS COMBINADAS.
COMBINACIN INTERNA.

La combinacin interna nos permite mostrar los datos de dos o ms tablas a travs de una condicin WHERE. Ejemplo
SELECT alumno.nombre,
alumno.apellido, alumno.edad, curso.bloque FROM alumno, curso WHERE curso.id_alumno = alumno.id_alumno;

CONSULTAS COMBINADAS.
INNER JOIN

Otra opcin es utilizar la clusula INNER JOIN. Su sintaxis es idntica a la de una consulta SELECT habitual, con la particularidad de que en la clusula FROM slo aparece una tabla o vista, aadindose el resto de tablas a travs de clusulas INNER JOIN .

Ejemplo
SELECT alumno.nombre, alumno.apellido, alumno.edad, curso.bloque, curso.paralelo FROM alumno INNER JOIN curso ON curso.id_alumno = alumno.id_alumno;

La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de la tabla izquierda con los valores de la tabla de la derecha correspondientes, o retorna un valor nulo NULL en caso de no correspondencia. La clusula INNER JOIN permite separar completamente las condiciones de combinacin con otros criterios, cuando tenemos consultas que combinan nueve o diez tablas esto realmente se agradece.

CONSULTAS COMBINADAS.
COMBINACIN EXTERNA

La combinacin interna es excluyente. Esto quiere decir que si un registro no cumple la condicin de combinacin no se incluye en los resultados. De este modo en el ejemplo anterior si un alumno no tiene grabada la marca no se devuelve en mi consulta.

CONSULTAS COMBINADAS.
LEFT OUTER JOIN o RIGHT OUTER JOIN

Con LEFT OUTER JOIN obtenemos todos los registros de en la tabla que situemos a la izquierda de la clausula JOIN, mientras que con RIGHT OUTER JOIN obtenmos el efecto contrario. Ejemplo:
SELECT alumno.nombre,

alumno.apellido,
alumno.edad, curso.bloque, curso.paralelo

FROM alumno
LEFT OUTER JOIN curso ON curso.id_alumno = alumno.id_alumno;

La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de la tabla izquierda con los valores de la tabla de la derecha correspondientes, o retorna un valor nulo NULL en caso de no correspondencia.

CONSULTAS COMBINADAS.
RIGHT OUTER JOIN

Esta operacin es inversa a la anterior; el resultado de esta operacin siempre contiene todos los registros de la tabla de la derecha (la segunda tabla que se menciona en la consulta), aun cuando no exista un registro correspondiente en la tabla de la izquierda para uno de la derecha.
Ejemplo:
SELECT alumno.nombre, alumno.apellido, alumno.edad, curso.bloque, curso.paralelo

FROM alumno
RIGHT OUTER JOIN curso ON curso.id_alumno = alumno.id_alumno;

La sentencia RIGHT OUTER JOIN retorna la pareja de todos los valores de la tabla derecha con los valores de la tabla de la izquierda correspondientes, o retorna un valor nulo NULL en caso de no correspondencia.

CONSULTAS COMBINADAS.

UNION

Para utilizar la clausula UNION debemos cumplir una serie de normas.


Las consultas a unir deben tener el mismo nmero campos, y adems los campos deben ser del mismo tipo. Slo puede haber una nica clausula ORDER BY al final de la sentencia SELECT.

SELECT alumno.nombre, alumno.apellido, alumno.edad, curso.bloque, curso.paralelo FROM alumno INNER JOIN curso ON curso.id_alumno = alumno.id_alumno; UNION SELECT tMotos.matricula, tMarcas.marca, tMotos.modelo, tMotos.color, tMotos.numero_kilometros, 0 FROM tMotos INNER JOIN tMarcas ON tMotos.marca = tMarcas.codigo;

S-ar putea să vă placă și