Podemos obtener los registros en una tabla que no existen en otra tabla usando NOT IN o NOT EXISTS con las subconsultas que incluyen la otra tabla en las subconsultas. En esto, veamos cómo seleccionar todos los registros de una tabla que no existen en otra tabla paso a paso.
Crear una base de datos
Use el siguiente comando para crear una base de datos llamada GeeksforGeeks:
CREATE DATABASE GeeksforGeeks
Uso de la base de datos
Para usar la base de datos GeeksforGeeks, use el siguiente comando:
USE GeeksforGeeks
Crear una tabla:
Cree una tabla detalles_empleados con 4 columnas usando la siguiente consulta SQL:
CREATE TABLE employee_details( emp_id VARCHAR(8), emp_name VARCHAR(20), emp_designation VARCHAR(20), emp_age INT);
CREATE TABLE employee_resigned( emp_id VARCHAR(8), emp_name VARCHAR(20), emp_designation VARCHAR(20), emp_age INT);
Verificando la tabla:
Para ver la descripción de las tablas en la base de datos usando la siguiente consulta SQL:
EXEC sp_columns employee_details; EXEC sp_columns employee_resigned;
Insertar datos en la tabla
Insertar filas en las tablas employee_details y employee_resigned usando la siguiente consulta SQL:
INSERT INTO employee_details VALUES ('E40001','PRADEEP','H.R',36), ('E40002','ASHOK','MANAGER',28), ('E40003','PAVAN KUMAR','ASST MANAGER',28), ('E40004','SANTHOSH','STORE MANAGER',25), ('E40005','THAMAN','GENERAL MANAGER',26), ('E40006','HARSH',' ANALYST',25), ('E40007','SAMHITH','GENERAL MANAGER',26), ('E40008','SAMEER','SENIOR ANALYST',25), ('E40009','RISABH','BUSINESS ANALYST',26);
INSERT INTO employee_resigned VALUES('E40001','PRADEEP','H.R',36), ('E40004','SANTHOSH','STORE MANAGER',25), ('E40005','THAMAN','GENERAL MANAGER',26);
Verificando los datos insertados:
Visualización de la tabla detalles_empleados después de insertar filas mediante la siguiente consulta SQL:
SELECT* FROM employee_details; SELECT* FROM employee_resigned;
CONSULTAS:
- Consulta para averiguar la identificación del empleado y los nombres de aquellos que no renunciaron usando NO EXISTE.
SELECT emp_id,emp_name FROM employee_details WHERE NOT EXISTS (SELECT * FROM employee_resigned WHERE employee_details.emp_id = employee_resigned.emp_id);
- Consulta para conocer los detalles de los empleados de aquellos que no renunciaron usando NOT IN.
SELECT * FROM employee_details WHERE emp_id NOT IN (SELECT emp_id FROM employee_resigned)
Publicación traducida automáticamente
Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA