Cómo comparar columnas en dos tablas diferentes en SQL

Aquí vamos a ver cómo podemos comparar las columnas de dos tablas diferentes en SQL. Tomaremos algunos ejemplos para ver cómo podemos hacer esto de diferentes maneras.

Descripción general:
en esto, comprenderemos la descripción general de la consulta SQL para la operación requerida para realizar Cómo comparar columnas en dos tablas diferentes en SQL. Entenderemos cada concepto con la ayuda de ejemplos. 

Paso 1: creación de la base de datos:
para crear la base de datos, utilice la siguiente consulta SQL de la siguiente manera.

Sintaxis –

create database_name;

Ejemplo –

create STUDENTS_DATA

Paso 2: Uso de la base de datos:
Para usar esta base de datos de la siguiente manera.

Sintaxis –

use database_name;

Ejemplo –

use STUDENT_DATA

Paso 3: creación de tabla:
creación de tabla para realizar consultas de la siguiente manera.

Tabla-1: Sintaxis – 

create table table_name
(
column1 type, 
column2 type, 
... 
);

Ejemplo –

create table studentData1 
(
roll_number int primary key, 
firstname varchar(100), 
lastname varchar(100), 
marks int
);

Paso 4: Insertar registros:
Insertar registros en la tabla studentData1 de la siguiente manera.
Sintaxis –

insert into table_name(column1, column2 ...) values (value1, value2 ...);

Insertando en la tabla studentData1 –

insert into studentData1 (roll_number, firstname, lastname, marks) 
values (1, 'albert', 'einstein',356);
insert into studentData1 (roll_number, firstname, lastname, marks) 
values (2, 'isaac', 'newton',412);
insert into studentData1 (roll_number, firstname, lastname, marks) 
values (3, 'marie', 'curie',436);
insert into studentData1 (roll_number, firstname, lastname, marks) 
values (4, 'philip', 'jsam',389);
insert into studentData1 (roll_number, firstname, lastname, marks) 
values (5, 'tom', 'jsam',452);
insert into studentData1 (roll_number, firstname, lastname, marks) 
values (6, 'tucker', 'jose',412);
insert into studentData1 (roll_number, firstname, lastname, marks) 
values (7, 'drawn', 'caste',389);

Paso 5: Creando table2:
Aquí, crearemos el studentData2 usando la consulta SQL de la siguiente manera.

create table studentData2 
(
id int primary key, 
firstname varchar(100), 
lastname varchar(100), 
marks int
);

Paso 6: Insertar registros:
Insertar registros en la tabla studentData2 de la siguiente manera.

insert into studentData2 (id, firstname, lastname, marks) 
values (2, 'isaac', 'newton',412);
insert into studentData2 (id, firstname, lastname, marks) 
values (3, 'marie', 'curie',436);
insert into studentData2 (id, firstname, lastname, marks) 
values (6, 'tucker', 'jose',412);
insert into studentData2 (id, firstname, lastname, marks) 
values (4, 'philip', 'jsam',389);

Ejemplo-1:
Uso de la cláusula where para comparar columnas de dos tablas diferentes. No puede manejar los valores nulos.
Sintaxis:
(para seleccionar todos los registros con todas las columnas)

select * from table1, table 
where 
table1.col1 = table2.col2 and table1.col1 > someValue;

Sintaxis (alternativa):
(para seleccionar columnas específicas de las tablas)

select t1.col1, t2.col2,t3. col3 ...., t2.col1, t2.col2, t2.col3....  
from table1 t1, table t2 where t1.col1 = t2.col2 and t1.col1 <> t2.col2;

Consulta –

select * from studentData1, studentData2 
where studentData1.roll_number = studentData2.id;

Salida:
resultado basado en la comparación de roll_number e id de la siguiente manera.

rollo_número primer nombre apellido marcas identificación
2 isaac newton 412 2
3 María curie 436 3
4 Felipe jsam 389 4
6 fatigar José 412 6

Ejemplo-2:
uso de uniones para comparar columnas por prioridad entre la tabla. Por ejemplo, la combinación izquierda devuelve todos los valores de la primera tabla y el valor nulo para los registros no coincidentes de la segunda tabla. Del mismo modo, podemos usar la combinación derecha, la combinación interna, la combinación completa y la combinación automática según nuestros requisitos. En el siguiente ejemplo, hemos comparado dos tablas basadas en las columnas roll_number e id usando la combinación izquierda.

Sintaxis –

select t1.col1, t1.col2... , t2.col1, t2.col2... , 
from table1 as t1 left 
join table2 as t2 on 
tabe1.col1 = table2.col1;

Consulta –

select a.roll_number, a.firstname, b.id 
from studentData1 as a left 
join 
studentData2 as b on 
a.roll_number = b.id;

Salida:
Únase según la tabla de la izquierda, es decir, sutdentData1 de la siguiente manera.

rollo_número primer nombre identificación
1 alberto  
2 isaac 2
3 María 3
4 Felipe 4
5 Tomás  
6 fatigar 6
7 dibujado  

Ejemplo-3:
UNION nos permite comparar dos mismos tipos de tablas o conjuntos de datos. Podemos usar la unión para comparar las columnas una vez que podamos tener la unión de ambas tablas. Puede comprobar rápidamente qué datos faltan o han cambiado en cualquiera de las tablas. Es capaz de manejar valores nulos que no pueden ser manejados por la cláusula where.

Nota: 
esto solo se usa cuando tenemos el mismo tipo de tablas.

Sintaxis –

select col1, col2, col3 ....  
from (select col1, col2, col3 ... 
from Table1 union all select col1, col2, col3 ... 
from Table2) 
cmpr order by ID;

Ejemplo –

select * from 
(select * from studentData1 
where roll_number > 4 
union all 
select * from studentData2 where id < 6) 
cmpr order by marks;

Salida:
Comparó los mismos registros donde roll_number > 4 e id < 6 de la siguiente manera.

rollo_número primer nombre apellido marcas
dibujado casta 389
4 Felipe jsam 389
6 fatigar José 412
3 María curie 436
5 Tomás jsam 452

Publicación traducida automáticamente

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