Sei sulla pagina 1di 3

ECCI: ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES

Ing. Gustavo Beltrn Macas gbeltranm@ecci.edu.co



Asignatura: Base de Datos Semestre: IV

Guia 6 Consultas de combinacin de tablas

El INNER JOIN (realice las pruebas con la bases de datos de Neptuno)
El INNER JOIN es un tipo de composicin de tablas, permite emparejar filas de distintas tablas cuando
una de las columnas de emparejamiento est indexada.
La sintaxis es la siguiente:

Ejemplo:
SELECT *
FROM pedidos INNER JOIN clientes ON pedidos.Idcliente = clientes.IdCliente
Las tabla1 y tabla2 son especificaciones de tabla (nombre de tabla con alias o no, nombre de consulta
guardada), de las tablas cuyos registros se van a combinar.
Pueden ser las dos la misma tabla, en este caso es obligatorio definir al menos un alias de tabla.
col1, col2 son las columnas de emparejamiento.
Observar que dentro de la clusula ON los nombres de columna deben ser nombres cualificados
(lleva delante el nombre de la tabla y un punto).
Las columnas de emparejamiento deben contener la misma clase de datos, las dos de tipo
texto, de tipo fecha etc... los campos numricos deben ser de tipos similares. Por ejemplo, se
puede combinar campos AutoNumrico y Long puesto que son tipos similares, sin embargo, no
se puede combinar campos de tipo Simple y Doble. Adems las columnas no pueden ser de tipo
Memo ni OLE.
comp representa cualquier operador de comparacin ( =, <, >, <=, >=, o <>) y se utiliza para
establecer la condicin de emparejamiento.
Se pueden definir varias condiciones de emparejamiento unidas por los operadores AND y OR poniendo
cada condicin entre parntesis. Ejemplo:

SELECT *
FROM [Detalles de pedidos] INNER JOIN productos ON ([Detalles de pedidos].IdProducto
= productos.IdProducto) AND ([Detalles de pedidos].PrecioUnidad =
productos.PrecioUnidad)

Se pueden combinar ms 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.IdCliente = clientes.IdCliente) INNER
JOIN empleados ON pedidos.IdEmpleado = empleados.IdEmpleado

En vez de tabla1 hemos escrito un INNER J OIN completo, tambin podemos escribir:
SELECT *
FROM clientes INNER JOIN (pedidos INNER JOIN empleados ON pedidos.IdEmpleado=
empleados.IdEmpleado) ON pedidos.IdCliente = clientes.IdCliente

En este caso hemos sustituido tabla2 por un INNER J OIN completo.
Para estos ejemplos utilice la base de datos NEPTUNO
Ejemplo 1

En este ejemplo se mostrara toda la informacin que tienen las tablas productos y detalles de pedidos

SELECT * from productos, [Detalles de pedidos]

Ejemplo 2

En este ejemplo se devuelven Los nombres de la compaa y pas destinatarios de los clientes que
coinciden en las dos tablas pedidos y clientes
SELECT NombreCompaa, PaisDestinatario
FROM pedidos INNER JOIN clientes ON pedidos.Idcliente = clientes.IdCliente

Ejemplo 3:
En este ejemplo se devuelven los nombres de las empresas que han enviado pedidos despus del
10/10/97. Observe que se utiliza una clusula WHERE para restringir las filas devueltas en el conjunto de
resultados.
SELECT NombreEmpresa,FechaEnvio
FROM Pedido INNER JOIN Cliente
ON pedido.IdCliente = cliente.IdCliente
WHERE FechaEnvio>'10/10/97'

Ejemplo 4:

Si miramos la tabla pedidos veremos que adems del idpedido, tenemos informacin del empleado que
realizo el pedido y la ciudad. Por lo tanto, por medio del campo IdEmpleado presente en las dos tablas
podemos relacionar Empleados y pedidos; con el nmero de pedido ordenado descendentemente.

Ejemplo:

SELECT IdPedido, Nombre,Ciudad
FROM Pedidos inner join Empleado
ON Pedidos.IdEmpleado = empleado.IdEmpleado
ORDER by IdPedido desc



ACTIVIDADESDECLASE

Realice los siguientes ejercicios, Usando la base de datos Neptuno
1. Consultar los nombres de los proveedores, ciudad, telfono, nombre del producto, precio y
existencias, para aquellos cuyas existencias sean menores a 20 unidades.

2. Consultar los nombres de los empleados que han atendido al cliente ALFKI, el listado debe incluir
nombre completo y cargo del empleado.

3. Consultar los nombres de los clientes que hicieron compras en octubre de 2010.

4. Mostrar los nombres de los productos, su precio unitario y existencias nicamente para los de las
categoras 3, 5 y 7. La lista debe mostrarse en orden ascendente por el nombre del producto.

5. Mostrar una lista con los nombres completos de los empleados y los cdigos de los pedidos que
han atendido, organizar la lista por el apellido en orden alfabtico y por la fecha del pedido desde
el ms reciente.

6. Mostrar el cdigo del pedido y el nombre de los productos vendidos en octubre de 2010.

7. Mostrar el nombre del cliente, nombre y apellido del empleado y el cargo de los pedidos con cargo
mayor a 70.

8. Listar los clientes cuyo nombre empiece por A incluyendo los nmeros de rdenes que han hecho.

9. Listar el 50% de los pedidos, desde el ms reciente en adelante, se debe mostrar el nombre del
cliente, el nombre de la compaa de envos y la fecha de entrega del pedido.

10. Mostrar el nombre de cada proveedor y el nombre de las categoras que suministra.

11. Ordenar de mayor a menor por su precio unitario los productos cuyo empaque sean botellas.
Mostrar el nombre del producto y el nombre de la categora a la cual pertenecen.

12. Consultar por cada producto el total de unidades vendidas por mes, el listado debe incluir nombre
del producto, el mes y el total de unidades vendidas en ese mes.

13. Mostrar el nombre del cliente, la cantidad de compras que ha hecho y el monto total de las
mismas, mostrar solo el que mayor cantidad de compras ha hecho.

Potrebbero piacerti anche