Una instrucción Join de PostgreSQL se utiliza para combinar datos o filas de una o más tablas en función de un campo común entre ellas. Estos campos comunes son generalmente la clave principal de la primera tabla y la clave externa de otras tablas.
Hay 4 tipos básicos de uniones compatibles con PostgreSQL, a saber:
- Unir internamente
- Unirse a la izquierda
- Unirse a la derecha
- Unión exterior completa
Algunas combinaciones especiales de PostgreSQL se encuentran a continuación:
- Unión natural
- Unión cruzada
- Unirse a uno mismo
Veamos las 4 uniones básicas en PostgreSQL. Por el bien de este artículo, configuraremos una base de datos de muestra con los siguientes comandos en nuestro shell psql:
- Crear un zoológico de base de datos.
CREATE DATABASE zoo;
- Cree una tabla zoo_1.
CREATE TABLE zoo_1 ( id INT PRIMARY KEY, animal VARCHAR (100) NOT NULL );
- Cree una tabla zoo_2.
CREATE TABLE zoo_2 ( id INT PRIMARY KEY, animal VARCHAR (100) NOT NULL );
- Inserte datos en la tabla zoo_1.
INSERT INTO zoo_1(id, animal) VALUES (1, 'Lion'), (2, 'Tiger'), (3, 'Wolf'), (4, 'Fox');
- Inserte datos en la tabla zoo_2.
INSERT INTO zoo_2(id, animal) VALUES (1, 'Tiger'), (2, 'Lion'), (3, 'Rhino'), (4, 'Panther');
Ahora tenemos dos tablas zoo_1 y zoo_2 con dos animales comunes y cuatro animales diferentes. Supongamos también que zoo_1 es la tabla de la izquierda.
Unir internamente
La siguiente declaración une la tabla de la izquierda con la tabla de la derecha usando los valores en la columna «animal»:
SELECT zoo_1.id id_a, zoo_1.animal animal_a, zoo_2.id id_b, zoo_2.animal animal_b FROM zoo_1 INNER JOIN zoo_2 ON zoo_1.animal = zoo_2.animal;
Producción:
Como se ve en el resultado anterior, la unión interna devuelve un conjunto de resultados que contiene una fila en la tabla de la izquierda que coincide con la fila de la tabla de la derecha.
El diagrama de Venn para INNER JOIN es el siguiente:
Unirse a la izquierda
La declaración a continuación une la tabla de la izquierda con la tabla de la derecha usando la combinación izquierda (o combinación externa izquierda):
SELECT zoo_1.id, zoo_1.animal, zoo_2.id, zoo_2.animal FROM zoo_1 LEFT JOIN zoo_2 ON zoo_1.animal = zoo_2.animal;
Producción:
Como se ve en el resultado anterior, la unión izquierda devuelve un conjunto completo de filas de la tabla de la izquierda con las filas coincidentes, si están disponibles, de la tabla de la derecha. Si no hay coincidencia, el lado derecho tendrá valores nulos.
El diagrama de Venn para LEFT JOIN es el siguiente:
Unirse a la derecha
El RIGHT JOIN o RIGHT OUTER JOIN funciona exactamente de manera opuesta al LEFT JOIN. Devuelve un conjunto completo de filas de la tabla de la derecha con las filas coincidentes, si están disponibles, de la tabla de la izquierda. Si no hay coincidencia, el lado izquierdo tendrá valores nulos.
La declaración a continuación une la tabla de la derecha con la tabla de la izquierda usando la combinación derecha (o combinación externa derecha):
SELECT zoo_1.id, zoo_1.animal, zoo_2.id, zoo_2.animal FROM zoo_1 RIGHT JOIN zoo_2 ON zoo_1.animal = zoo_2.animal;
Producción:
El diagrama de Venn para una UNIÓN EXTERNA DERECHA está a continuación:
Unión exterior completa
La combinación externa completa o la combinación completa devuelve un conjunto de resultados que contiene todas las filas de las tablas izquierda y derecha, con las filas coincidentes de ambos lados donde estén disponibles. Si no hay coincidencia, el lado que falta contiene valores nulos.
La siguiente declaración ilustra la combinación externa completa:
SELECT zoo_1.id, zoo_1.animal, zoo_2.id, zoo_2.animal FROM zoo_1 FULL JOIN zoo_2 ON zoo_1.animal = zoo_2.animal;
Producción:
El diagrama de Venn para una UNIÓN EXTERNA COMPLETA se muestra a continuación:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA