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
NULLvalores 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 BYcláusula para listar las filas cuyoAlbumIdesNULLvalores primero. - Segundo, use
WHEREcláusula yIS NULLoperador 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.