Consulta Multitabla

Páginas: 6 (1440 palabras) Publicado: 12 de noviembre de 2012
Consultas Multitabla

¿Que es una consulta multitabla?
Una consulta multitabla es una consulta que obtiene datos de varias tablas por lo que deberá contener en la zona de tablas de la ventana Diseño las distintas tablas de donde obtiene esos datos.
¿Para qué sirve?
Si las tablas no están relacionadas o no tienen campos con el mismo nombre, la consulta obtiene la concatenación de todas lasfilas de la primera tabla con todas las filas de la segunda tabla, si tenemos una tercera tabla concatenará cada una de las filas obtenidas en el primer paso con cada una de las filas de la tercera tabla, y así sucesivamente. Vemos que no interesa basar la consulta en muchas tablas ya que el resultado de la concatenación puede alcanzar dimensiones gigantescas.

Inner Join

El Inner Join es otrotipo de composición de tablas, permite combinar registros de dos tablas siempre que existan valores coincidentes en un campo común. Este es el JOIN que mas frecuentemente se utiliza. Su formato es el siguiente:

FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.Columna1 Comparación
Tabla2.Columna2
Por Ejemplo:
SELECT *
FROM Pedidos
INNER JOIN Clientes ON Pedidos.Cod_Cliente =Clientes.Cod_Cliente;Tabla1 y Tabla2 especificaran el nombre de las tablas que van a combinarse.
Puede darse el caso de combinar la misma tabla. En este caso el nombre de una de las tablas deberá ser un alias de tabla.

Columna1 y Columna2 indica que columnas, comunes en las dos tablas, se van a utilizar para la combinación de las dos tablas. Dentro de la cláusula ON los nombres de columna deben ser nombrescualificados (llevan delante el nombre de
la tabla y un punto). Estas columnas deben contener la misma clase de datos.

Comparación representa cualquier operador de comparación (=, <, >, <=,
>= o <>). Con el estableceremos la condición de emparejamiento. Tenemos la posibilidad de definir varias condiciones de emparejamiento unidas por los operadores AND u OR.

Se pueden combinarmás de dos tablas. En este caso hay que sustituir en la sintaxis una tabla por un INNER JOIN completo. Por ejemplo:

SELECT * FROM (Pedidos INNER JOIN Clientes ON Pedidos.Cod_Cliente =
Clientes.Cod_Cliente) INNER JOIN Empleados ON Pedidos.Cod_Empleado =
Empleados.Cod_Empleado);

En vez de tabla1 hemos escrito un INNER JOIN completo, también podríamos realizarlo de esta otra manera.

SELECT *FROM Clientes INNER JOIN (Pedidos INNER JOIN Empleados ON
Pedidos.Cod_Empleado = Empleados.Cod_Empleado) ON Pedidos.Cod_Cliente =
Clientes.Cod_Cliente;

En este caso hemos sustituido tabla2 por un INNER JOIN completo.

El Left Join y el Right Join

Utilizaremos las órdenes LEFT JOIN y RIGHT JOIN para realizar composiciones de tablas. Este tipo de composición es denominada composiciónexterna y es una extensión de la orden INER JOIN. Debido a que las composiciones vistas hasta ahora (composiciones internas) solo podremos obtener las filas que tengan al menos una fila de la otra tabla que cumpla la condición especificada en la sentencia, por ejemplo si quisiéramos obtener los datos de los empleados y la ciudad en la que trabajan cada uno de ellos realizaríamos la siguientesentencia:

SELECT Empleados.*, Ciudad FROM Empleados, Oficinas WHERE
Empleados.Cod_Oficina = Oficinas.Cod_Oficina;

En esta sentencia los empleados que no estén relacionados con ninguna oficina no aparecerán en el resultado de la consulta Si por el contrario realizáramos la sentencia con un INNER JOIN la sentencia se parecida a esta:

SELECT Empleados.*, Ciudad FROM Empleados INNER JOIN Oficinas ONEmpleados.Cod_Oficina = Oficinas.Cod_Oficina;

Si realizamos esta sentencia los empleados con valores nulos en oficina no aparecerán en el resultado de la consulta. Si por el contrario quisiéramos que estos valores aparecieran deberíamos utilizar las sentencias LEFT o RIGHT JOIN.

El Left Join

El formato de la sintaxis del LEFT JOIN es la misma que utilizamos para el
INNER JOIN pero...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Consultas multitabla mysql
  • SQL-CONSULTAS MULTITABLAS
  • Consultas Multitablas
  • Consultas Multitablas
  • Consulta Multitablas
  • Consultas Multitabla
  • Sql consultas multitabla
  • CONSULTAS MULTITABLA Y FUNCIONES SOBRE LA BASE DE DATOS Empresa

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS