Operación Inner Join en SQL Server

Operación Inner Join en SQL Server

Cuando empezamos a iniciar nuestros estudios en bases de datos, aprendemos a crear tablas y a relacionarlas unas con otras, pero después conforme vamos avanzando se nos presenta un problema que es cuando hacemos una operación de selección a una tabla y nos aparece algo como lo siguiente:

Consulta sin inner join

Es una tabla donde al mostrar los datos una operación de selección nos aparece con el idcategoria y lo que deseamos es que aparesca el nombre de la categoría al que pertenece ese producto. Entonces es en estos casos cuando usamos inner join lo cual es una operación que nos va permitir unir los registros de dos tablas teniendo en cuenta algún campo en común que en nuestro caso sería idcategoria.

Para comenzar con nuestro ejemplo crearemos una base de datos y agregaremos tablas hasta llegar al caso y aprender a usar la operación inner join.

Empezamos creando la base de datos BDSistek.

Creando base de datos sistek

Agregamos la tabla Categoria teniendo el siguiente diseño:

Tabla categoria inner join

También agregamos la tabla Producto:

Tabla producto inner join

Después de haber terminado de crear las tablas relacionamos las tablas Categoria y Producto, quedando con el siguiente diseño:

Relacion tabla inner join

Nos faltaría agregar datos a cada una de las tablas en el caso de la tabla Categoria quedaría así:

Datos tabla categoria inner join

y la tabla Producto con estos datos:

Datos tabla producto inner join

Ahora usaremos la operación inner join para mostrar la categoria al hacer una selección a la tabla producto.

Sentencia Normal:

select * from Producto;

Sentencia con Inner Join:

select p.idproducto,p.nombre,p.precio,p.stock,c.descripcion as categoria from Producto p inner join Categoria c on c.idcategoria=p.idcategoria;

Para cada tabla se coloca un alias y con ella se llama a cada campo de la tabla así no tendremos un error de ambiguedad al haber campos con el mismo nombre ya que los registros de ambas tablas se unen y por supuesto el campo idcategoria seria ambiguo ya que existe un campo en la tabla producto y el otro en categoria. Después usamos la claúsula on para indicar que campos son los comunes entre ambas tablas, por lo general ambos campos tienen el mismo nombre pero eso puede variar según cada caso.

Ejecutando nos quedaría de la siguiente forma:

Consulta con inner join producto

Ahora si tendríamos una tabla con más de un campo id común relacionándose con otra tabla tendríamos que usar el mismo inner join pero usándolo según la cantidad de campos.

Para nuestro nuevo ejemplo crearemos una tabla Estado y la relacionamos con la tabla Producto.

Relacion tabla inner join 3 tablas

Realizando la selección normal tendríamos este caso:

Consulta sin inner join 3 tablas

Usando la selección con Inner join

select p.idproducto,p.nombre,p.precio,p.stock,c.descripcion as categoria,
e.descripcion as estado from Producto p inner join Categoria c on
c.idcategoria=p.idcategoria inner join Estado e on e.idestado=p.idestado;
Consulta inner join 3 tablas producto

Como vemos solo volvemos a añadir el inner join despues de haber especificado los campos comunes entre la tabla producto y categoria luego se continua agregando otro inner join pero los campos comunes entre producto y estado.

Publicar un comentario

Guardar mi nombre, correo electrónico y sitio web en este navegador la próxima vez que comente

0 Comentarios