JOIN SQL

El join de SQL se utiliza para consultar datos de estas tablas basándose en la relación entre las columnas de dos o más tablas.

Join y Key

A veces, para obtener resultados completos, necesitamos obtener resultados de dos o más tablas. Entonces necesitamos ejecutar join.

Las tablas en la base de datos se pueden conectar entre sí mediante una clave. La clave principal (Primary Key) es una columna, en la que cada valor de la fila es único. En la tabla, cada valor de la clave principal es único. El objetivo de hacer esto es combinar los datos entre tablas sin repetir todos los datos de cada tabla.

Vea la tabla "Persons":

Id_P LastName FirstName Dirección Ciudad
1 Adams John Calle de Oxford Londres
2 Bush George Avenida Quinta Nueva York
3 Carter Thomas Calle Chang'an Pekín

Por favor, tenga en cuenta que la columna "Id_P" es la clave principal de la tabla "Persons". Esto significa que no hay dos filas que puedan tener el mismo Id_P. Incluso si los nombres de dos personas son completamente iguales, el Id_P puede distinguirlos.

A continuación, vea la tabla "Orders":

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

Por favor, tenga en cuenta que la columna "Id_O" es la clave principal de la tabla "Orders", al mismo tiempo, la columna "Id_P" de la tabla "Orders" se utiliza para referirse a la tabla "Persons" sin necesidad de usar sus nombres exactos.

Tenga en cuenta que la columna "Id_P" une las dos tablas anteriores.

Referencia a dos tablas

Podemos obtener datos de dos tablas al referirnos a dos tablas:

¿Quién compró el producto y qué producto compraron?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

Conjunto de resultados:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

SQL JOIN - Uso de Join

Además del método anterior, también podemos usar la palabra clave JOIN para obtener datos de dos tablas.

Si queremos listar las órdenes de todos los personas, podemos usar la siguiente declaración SELECT:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

Conjunto de resultados:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

Diferentes JOIN de SQL

Además del INNER JOIN (conexión interna) que hemos utilizado en los ejemplos anteriores, también podemos usar otros tipos de conexiones.

A continuación se muestra una lista de los tipos de JOIN que puede usar, así como las diferencias entre ellos.

  • JOIN: Regresa filas si hay al menos una coincidencia en la tabla
  • LEFT JOIN: Regresa todas las filas de la tabla izquierda, incluso si no hay coincidencia en la tabla derecha
  • RIGHT JOIN: Regresa todas las filas de la tabla derecha, incluso si no hay coincidencia en la tabla izquierda
  • FULL JOIN: Regresa filas siempre que exista una coincidencia en alguna de las tablas