Resumen :en este tutorial, aprenderá a usar SQLite LEFT JOIN
cláusula para consultar datos de varias tablas.
Introducción a SQLite LEFT JOIN
cláusula
Similar a INNER JOIN
cláusula, la LEFT JOIN
cláusula es una cláusula opcional de SELECT
declaración. Usas el LEFT JOIN
cláusula para consultar datos de varias tablas relacionadas.
Supongamos que tenemos dos tablas:A y B.
- A tiene columnas m y f.
- B tiene columnas n y f.
Para realizar la unión entre A y B usando LEFT JOIN
cláusula, utiliza la siguiente declaración:
SELECT
a,
b
FROM
A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
La expresión A.f = B.f
es una expresión condicional. Además del operador de igualdad (=), puede utilizar otros operadores de comparación como mayor que (>), menor que (<), etc.
La instrucción devuelve un conjunto de resultados que incluye:
- Filas en la tabla A (tabla izquierda) que tienen filas correspondientes en la tabla B.
- Filas de la tabla A y las filas de la tabla B rellenadas con
NULL
valores en caso de que la fila de la tabla A no tenga filas correspondientes en la tabla B.
En otras palabras, todas las filas de la tabla A se incluyen en el conjunto de resultados, ya sea que haya filas coincidentes en la tabla B o no.
En caso de que tenga un WHERE
cláusula en la sentencia, la search_condition
en el WHERE
la cláusula se aplica después de la coincidencia de LEFT JOIN
cláusula completa.
Vea la siguiente ilustración de LEFT JOIN
cláusula entre las tablas A y B.
Todas las filas de la tabla A se incluyen en el conjunto de resultados.
Porque la segunda fila (a2,2)
no tiene una fila correspondiente en la tabla B, el LEFT JOIN
cláusula crea una fila falsa lleno con NULL
.
El siguiente Diagrama de Venn ilustra el LEFT JOIN
cláusula.
Se observa que LEFT OUTER JOIN
es lo mismo que LEFT JOIN
.
SQLite LEFT JOIN
ejemplos
Usaremos los artists
y albums
tablas en la base de datos de muestra para demostración.
Un álbum pertenece a un artista. Sin embargo, un artista puede tener cero o más álbumes.
Para encontrar artistas que no tienen álbumes usando LEFT JOIN
cláusula, seleccionamos artistas y sus correspondientes álbumes. Si un artista no tiene álbumes, el valor de AlbumId
la columna es NULL.
Para mostrar primero a los artistas que no tienen ningún álbum, tenemos dos opciones:
- Primero, usa
ORDER BY
cláusula para listar las filas cuyoAlbumId
esNULL
valores primero. - Segundo, use
WHERE
cláusula yIS NULL
operador para enumerar solo los artistas que no tienen ningún álbum.
La siguiente instrucción utiliza LEFT JOIN
cláusula con el ORDER BY
cláusula.
SELECT
artists.ArtistId,
AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
ORDER BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
La siguiente instrucción utiliza LEFT JOIN
cláusula con WHERE
cláusula.
SELECT
artists.ArtistId
, AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
WHERE
AlbumId IS NULL;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
En este tutorial, ha aprendido a usar SQLite LEFT JOIN
cláusula para consultar datos de varias tablas.