¿Cómo seleccionar todos los registros de una tabla que no existen en otra tabla en SQL?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *