Consulta SQL para ELIMINAR ciertas filas en función de comparaciones con otras tablas

En este artículo, veremos cómo eliminar ciertas filas en función de las comparaciones con otras tablas. Podemos realizar la función usando una subconsulta en lugar de la condición en la Cláusula WHERE. Una subconsulta es una consulta que aparece dentro de otra consulta. También se puede llamar una consulta anidada.

Sintaxis:

SELECT * FROM table_name WHERE column_name=
( SELECT column_name FROM table_name);

Una consulta SELECT se escribe después de que la cláusula WHERE sea la subconsulta.

Para eliminar la fila de la tabla:

Sintaxis: 

DELETE FROM table_name WHERE condition;

Ahora, para la demostración, siga los pasos a continuación:

Paso 1: Crear una base de datos

podemos usar el siguiente comando para crear una base de datos llamada geeks.

Consulta:

CREATE DATABASE geeks;

Paso 2: usar la base de datos

Use la siguiente instrucción SQL para cambiar el contexto de la base de datos a geeks:

Consulta:

USE geeks;

Paso 3: definición de la tabla

Tenemos dos tablas llamadas ‘ demo_table1 ‘ y ‘ demo_table2 ‘ en la base de datos de nuestro geek.

Consulta (demo_table1):

CREATE TABLE demo_table1(
NAME VARCHAR(20),
AGE int,
CITY VARCHAR(10));

Consulta (demo_table2):

CREATE TABLE demo_table2(
NAME VARCHAR(20),
AGE int);

Paso 4: Insertar datos en una tabla

Consulta (demo_table1):

INSERT INTO demo_table1 VALUES
('Romy',23,'Delhi'),
('Pushkar',23,'Delhi'),
('Nikhil',24,'Punjab'),
('Rinkle',23,'Punjab'),
('Samiksha',23,'Banglore'),
('Ashtha',24,'Banglore'),
('Satish',30,'Patna'),
('Girish',30,'Patna'),
('Ram', 20 , 'Patna'),
 ('Raj', 12, 'Delhi');

Consulta (demo_table2):

INSERT INTO demo_table2 VALUES ('Fanny',25 ),
('Prem', 30), ('Preeti',21 ),('Samita',32);

Paso 5: Ver el contenido

Ejecute la siguiente consulta para ver el contenido de la tabla

Consulta:

SELECT * FROM demo_table1;

Producción:

Consulta:

SELECT * FROM demo_table2;

Producción:

Paso 6: elimine filas en función de la comparación mediante subconsulta

Para la demostración, eliminemos filas de demo_table1 cuya EDAD es menor que el valor mínimo de EDAD de demo_table2

 Para obtener el valor mínimo de EDAD de demo_table2:

Consulta:

SELECT MIN(AGE) FROM demo_table2;

Ahora, usaremos la consulta anterior como subconsulta para eliminar la fila que tiene valores menores que el valor obtenido de la consulta.

Consulta:

DELETE FROM demo_table1 WHERE AGE < 
(SELECT MIN(AGE) FROM demo_table2);

Ahora revisa el contenido de demo_table1

Producción:

Podemos ver en la imagen que ahora se eliminan 2 entradas (‘Ram’, 20, ‘Patna’), (‘Raj’, 12, ‘Delhi’) ya que ambas entradas tienen un valor de EDAD inferior a 21 (edad mínima valor de demo_table2).

Publicación traducida automáticamente

Artículo escrito por romy421kumari 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 *