sql >> Base de Datos >  >> RDS >> SQLite

Unión izquierda de SQLite

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:

  1. Filas en la tabla A (tabla izquierda) que tienen filas correspondientes en la tabla B.
  2. 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 cuyo AlbumId es NULL valores primero.
  • Segundo, use WHERE cláusula y IS 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.