Consulta SQL para combinar dos tablas sin una columna común

En la mayoría de las consultas en el proceso de aprendizaje, solemos unir aquellas tablas que tienen algunas columnas comunes o relaciones entre ellas. Pero cuando se trata de problemas de la vida real, rara vez se encuentran condiciones tan fáciles. La mayoría de las tareas complejas como unir dos tablas sin una columna común se encuentran. 

Primero echemos un vistazo a nuestras tablas que uniremos en este ejemplo:

Creación de la base de datos:

Use la siguiente instrucción SQL para crear una base de datos llamada geeks :

CREATE DATABASE GFG;

Uso de la base de datos:

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

USE GFG;

Adición de tablas:

Ahora creamos dos tablas nombradas como table1 y table2

CREATE TABLE table1
(
    Name1 VARCHAR(20),
    ID1 INT PRIMARY KEY,
    Salary1 INT
);

CREATE TABLE table2
(
    Name2 VARCHAR(20),
    ID2 INT PRIMARY KEY,
    Salary2 INT
);

Ahora, agregando datos a las tablas.

INSERT INTO table1
ValUES
('Harish',1,1000),
('Rakesh',2,2000),
('Mukesh',3,3000),
('Suresh',4,4000),
('Ramesh',5,4000);

INSERT INTO table2
VALUES
('Astitva',1,4000),
('Maharaj',2,41000);

Para verificar el contenido de la tabla, use la siguiente declaración:

Para tabla1:

SELECT * FROM table1;

Para tabla2:

SELECT * FROM table2;

Ahora, como podemos ver, no hay dos columnas que sean iguales en las dos tablas anteriores. Ahora, para fusionarlos en una sola tabla, tenemos 3 métodos diferentes.

Método 1 (Unión cruzada): Como habrá oído hablar de varias uniones como la unión interna, la unión externa, de la misma manera está la unión cruzada, que se usa para formar el producto cartesiano de las tablas sin o con columnas comunes. Entonces, dado que estas uniones no verifican ninguna columna, solo hacen un producto de las dos tablas, por lo que estas uniones no se consideran buenas para ninguna consulta, ya que estas uniones darán como resultado la repetición de datos. Además, la inconsistencia estaría allí. Pero como estamos interesados ​​​​en conocer los métodos, lo estamos discutiendo.

Para hacer una combinación cruzada, solo se nos requiere especificar el nombre de la tabla en la cláusula FROM. No, se necesita la cláusula WHERE.

SELECT * FROM table1, table2;

5*2=10

Método 2 (Método UNION): Este método es diferente del anterior ya que no es simplemente una unión. Su objetivo principal es combinar la tabla a través del método Fila por Fila. Simplemente agrega el número de filas ÚNICAS de las dos tablas y nombra las columnas según la primera tabla especificada en el método.

SELECT *
FROM TABLE1
UNION
SELECT *
FROM TABLE2;

Esto devuelve todas las filas (únicas) combinadas bajo el nombre de columna de TABLE1.

También podemos consultar columnas individuales o cambiar el nombre de las columnas en este método como se muestra a continuación:

SELECT salary1 as salary
FROM TABLE1
UNION
SELECT salary2 as salary
FROM TABLE2;

Por lo tanto, podemos seleccionar todos los salarios posibles y otorgados a diferentes clientes en las dos tablas. Este método devuelve datos únicos.

Método 3 (UNION ALL): la única diferencia entre el método UNION y UNIONALL es que el anterior permite filas no duplicadas (únicas), pero el último da como resultado todas las filas posibles al combinar también los duplicados.

SELECT salary1 as salary
FROM TABLE1
UNION all
SELECT salary2 as salary
FROM TABLE2;

Por lo tanto, podemos ver los tres métodos diferentes para combinar tablas con columnas no comunes. Estos métodos se utilizan en condiciones separadas según se requiera.

Publicación traducida automáticamente

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