JOIN SQL
- Página anterior SQL Aliases
- Página siguiente SQL Inner Join
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
- Página anterior SQL Aliases
- Página siguiente SQL Inner Join