sql >> Base de Datos >  >> RDS >> Database

Cómo usar INNER JOIN en SQL

En este artículo, aprenderemos sobre el concepto INNER JOIN y cómo usarlo en SQL con la cláusula WHERE.

¿Qué es INNER JOIN en SQL?

Inner Join es un tipo de unión en SQL. La unión interna en SQL es una unión ampliamente utilizada. Esta combinación devuelve solo aquellas filas que son comunes en ambas tablas. La combinación interna se usa para unir dos tablas.

Sintaxis de Inner Join en SQL:

SELECT table1.columname1, table1.columnname2, table2.columnname1, table2.columnname2 FROM TABLE1 INNER JOIN TABLE2 ON table1.column = table2.column;

Table1.column =table2.column es la columna común que mantiene la relación padre-hijo entre estas dos tablas.

Hay algunos pasos que tenemos que usar en el Inner Join en la consulta SQL:

1. Cree una nueva base de datos o use una base de datos existente seleccionando la base de datos usando la palabra clave USE seguida del nombre de la base de datos.

2. Cree una nueva tabla dentro de la base de datos seleccionada, o puede usar una tabla ya creada.

3. Si la tabla se creó recientemente, inserte los registros en la base de datos recién creada utilizando la consulta INSERT.

4. Vea los datos insertados utilizando la consulta SELECT sin la consulta de unión interna.

5 Ahora, estamos listos para usar Inner Join en las consultas SQL.

Paso 1:Cree una nueva base de datos o use una base de datos ya creada.

Ya he creado una base de datos. Usaré mi nombre de base de datos creado existente, Compañía.

USE Company;

Empresa es el nombre de la base de datos.

Aquellos que no hayan creado una base de datos, sigan la siguiente consulta para crear la base de datos:

CREATE DATABASE database_name;

Después de crear la base de datos, seleccione la base de datos usando la palabra clave USE seguida del nombre de la base de datos.

Paso 2:Cree una nueva tabla o utilice una tabla existente:

Ya he creado una tabla. Usaré la tabla existente llamada Empleados y Gerente mientras ejecutamos la consulta de Inner Join.

Para crear la nueva tabla, siga la siguiente sintaxis de CREATE TABLE:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Paso 3:inserte los registros en la tabla recién creada usando la consulta INSERT

Utilice la siguiente sintaxis para insertar nuevos registros en la tabla:

INSERT INTO table_name VALUES(value1, value2, value3);

Paso 4: Ver los registros usando la consulta SELECT.

Vea los registros de la tabla usando la siguiente sintaxis:

SELECT * FROM table_name;

La siguiente consulta mostrará los registros de Empleados.

SELECT * FROM Employees;

El resultado de la consulta SELECT anterior es:

ID DE EMPLEADO FIRST_NAME APELLIDO SALARIO CIUDAD DEPARTAMENTO ID DE ADMINISTRADOR
1001 VAIBHAVI MISHRA 65500 PUNE ORACULO 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACULO 1
2002 BHAVESH JAÍN 65500 PUNE FMW 2
2003 RUCHIKA JAÍN 50000 BOMBAY C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 BOMBAY JAVA 3
4001 RAJESH GOUD 60500 BOMBAY PRUEBA 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACULO 1
5001 ARCHIT SHARMA 55500 DELHI PRUEBA 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6001 RAHUL NIKAM 54500 BANGALORE PRUEBA 4
6002 ATISH JADHAV 60500 BANGALORE C# 5
6003 NIKITA INGALE 65000 HYDERABAD ORACULO 1

La siguiente consulta mostrará los registros del Gerente.

SELECT * FROM Manager;

El resultado de la consulta SELECT anterior es:

Administrador nombre_administrador gerente_departamento
1 Snehdeep Kaur ORACULO
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra PRUEBA
5 Akash Kadam C#

La siguiente consulta mostrará los registros de Laptop.

SELECT * FROM Laptop;

El resultado de la consulta SELECT anterior es:

LAPTOPID NOMBRE ID DE EMPLEADO
101 DELL NULO
102 HP 1002
103 LENOVO NULO
104 HP 3003
105 DELL 4002
106 LENOVO 4003
107 DELL 5001
108 HP NULO
109 DELL NULO
110 HP NULO
111 LENOVO 2002
112 LENOVO 6003
113 HP 1003

Paso 5:Estamos listos para usar INNER JOIN en las consultas

Entendamos el Inner Join con la ayuda de ejemplos.

Ejemplo 1: Escriba una consulta para mostrar la identificación del empleado, el nombre, el apellido, el salario, la ciudad de la tabla del empleado y la identificación y el nombre del gerente de la tabla del gerente utilizando la unión interna.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, E.CITY, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;

En la consulta anterior, hemos obtenido la identificación del empleado, el nombre, el apellido, el salario, la ciudad de la tabla del empleado y la identificación del administrador, el nombre del administrador de la tabla del administrador donde la columna de identificación del administrador de la tabla de empleados es igual a la columna de identificación del administrador de la tabla del administrador. La consulta devolverá todos los registros de coincidencias de ambas tablas. La identificación del administrador es una columna común entre ambas tablas. E es un nombre de alias para la tabla de empleados, mientras que M es para la tabla de gerentes. La columna de identificación del gerente funciona como una clave externa en la tabla del empleado. La identificación del administrador funciona como la clave principal en la tabla del administrador, lo que crea una relación padre-hijo entre las dos tablas.

El resultado de la consulta anterior es:

ID DE EMPLEADO FIRST_NAME APELLIDO SALARIO CIUDAD DEPARTAMENTO ID DE ADMINISTRADOR
1001 VAIBHAVI MISHRA 65500 PUNE ORACULO 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACULO 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACULO 1
6003 NIKITA INGALE 65000 HYDERABAD ORACULO 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2002 BHAVESH JAÍN 65500 PUNE FMW 2
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 BOMBAY JAVA 3
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
4001 RAJESH GOUD 60500 BOMBAY PRUEBA 4
5001 ARCHIT SHARMA 55500 DELHI PRUEBA 4
6001 RAHUL NIKAM 54500 BANGALORE PRUEBA 4
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
2003 RUCHIKA JAÍN 50000 BOMBAY C# 5
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

Los registros se muestran en orden ascendente por ID de administrador predeterminado.

Ejemplo 2: Escriba una consulta para mostrar la identificación del empleado, el nombre, el apellido, la ciudad y el departamento de la tabla del empleado y la identificación del administrador y el nombre del administrador de la tabla del administrador utilizando Inner Join donde el departamento del empleado es C#.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.CITY, E.DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE DEPARTMENT = ‘C#’;

En la consulta anterior, hemos obtenido la identificación del empleado, el nombre, el apellido, la ciudad y el departamento de la tabla del empleado, la identificación del administrador y el nombre del administrador de la tabla del administrador donde la identificación del administrador de la tabla de empleados es igual a la identificación del administrador de la tabla del administrador solamente aquellos registros de empleados cuyo departamento de empleados es C#.

El resultado de la consulta anterior es:

ID DE EMPLEADO FIRST_NAME APELLIDO SALARIO CIUDAD DEPARTAMENTO ID DE ADMINISTRADOR
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
2003 RUCHIKA JAÍN 50000 BOMBAY C# 5
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

En el resultado anterior, podemos ver que solo se recuperan los registros de los empleados cuyo departamento es C#. Usamos la cláusula WHERE con la unión INNER.

Ejemplo 3: Escriba una consulta para mostrar la identificación del empleado, el nombre, el salario, la ciudad y el departamento de la tabla del empleado, y la identificación y el nombre de la computadora portátil de la tabla de la computadora portátil usando Inner Join.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY, E.DEPARTMENT, L.LAPTOPID, L.NAME FROM EMPLOYEES E INNER JOIN LAPTOP L ON E.EMPLOYEEID = L.EMPLOYEEID;

En la consulta anterior, hemos obtenido la identificación del empleado, el nombre, el salario, la ciudad y el departamento de la tabla de empleados, la identificación de la computadora portátil y el nombre de la tabla de la computadora portátil, donde la identificación del empleado de la tabla de empleados es igual a la identificación del empleado de la tabla de la computadora portátil . La identificación del empleado es una clave externa en la tabla Laptop, que crea una relación padre-hijo entre la tabla Employee y la tabla Laptop.

El resultado de la consulta anterior es:

ID DE EMPLEADO FIRST_NAME SALARIO CIUDAD DEPARTAMENTO PORTÁTIL NOMBRE
1002 VAIBHAV 60000 NOIDA C# 102 HP
3003 DEEPAM 58500 BOMBAY JAVA 104 HP
4002 ASHWINI 54500 NOIDA JAVA 105 DELL
4003 RUCHIKA 60000 DELHI ORACULO 106 LENOVO
5001 ARCHIT 55500 DELHI PRUEBA 107 DELL
2002 BHAVESH 65500 PUNE FMW 111 LENOVO
6003 NIKITA 65000 HYDERABAD ORACULO 112 LENOVO
1003 NIKHIL 50500 JAIPUR FMW 113 HP

Solo aquellos registros se muestran en la salida dada a quienes se les asignó la computadora portátil.

Ejemplo 4: Escriba una consulta para mostrar la identificación del empleado, el nombre, el salario y el departamento de la tabla de empleados, y la identificación y el nombre del gerente de la tabla del gerente usando la combinación interna donde el salario> 57000 o el departamento es Oracle.

SELECT EMPLOYEEID, FIRST_NAME, SALARY, DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID = M.MANAGERID WHERE SALARY > 57000 OR DEPARTMENT = 'ORACLE';

En la consulta anterior, hemos obtenido la identificación del empleado, el nombre, el salario y el departamento de la tabla del empleado, y la identificación del administrador y el nombre del administrador de la tabla del administrador, donde la identificación del administrador de la tabla de empleados es igual a la identificación del administrador del administrador solo para aquellos empleados cuyos el salario es superior a 57000 o el Departamento es Oracle.

El resultado de la consulta anterior es:

ID DE EMPLEADO FIRST_NAME APELLIDO SALARIO CIUDAD DEPARTAMENTO ID DE ADMINISTRADOR
1001 VAIBHAVI MISHRA 65500 PUNE ORACULO 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACULO 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACULO 1
6003 NIKITA INGALE 65000 HYDERABAD ORACULO 1
2002 BHAVESH JAÍN 65500 PUNE FMW 2
3003 DEEPAM JAUHARI 58500 BOMBAY JAVA 3
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
4001 RAJESH GOUD 60500 BOMBAY PRUEBA 4
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5

En el resultado anterior, solo se muestran los registros de empleados cuyo salario es superior a 57000 o cuyo departamento de empleados es 'Oracle'. El operador OR muestra registros si una de las condiciones dadas en la consulta es verdadera.