El LEFT JOIN de PostgreSQL devuelve todas las filas de la tabla del lado izquierdo de la unión y las filas coincidentes de la tabla del lado derecho de la unión. Las filas para las que no hay ninguna fila coincidente en el lado derecho, el conjunto de resultados contendrá null. LEFT JOIN también se conoce como LEFT OUTER JOIN.
Syntax:SELECT table1.column1, table1.column2, table2.column1, ....FROM table1 LEFT JOIN table2ON table1.matching_column = table2.matching_column;table1: First table.table2: Second tablematching_column: Column common to both the tables.
Analicemos la sintaxis anterior:
- En primer lugar, mediante la sentencia SELECT especificamos las tablas de donde queremos que se seleccionen los datos.
- En segundo lugar, especificamos la tabla principal.
- En tercer lugar, especificamos la tabla a la que se une la tabla principal.
El siguiente diagrama de Venn ilustra el funcionamiento de la cláusula LEFT JOIN de PostgreSQL:
Para este artículo utilizaremos la base de datos de ejemplo de alquiler de DVD, que se explica aquí y que se puede descargar pinchando en este enlace de nuestros ejemplos.
Ahora, vamos a ver unos cuantos ejemplos.
Ejemplo 1:
Aquí utilizaremos la cláusula LEFT JOIN para unir la tabla «película» con la tabla «inventario».
SELECT film.film_id, film.title, inventory_idFROM filmLEFT JOIN inventory ON inventory.film_id = film.film_id;
Salida:
Ejemplo 2:
Aquí utilizaremos la cláusula LEFT JOIN para unir la tabla «película» a la tabla «inventario» y utilizaremos la cláusula WHERE para filtrar las películas que no estén en el suministro de inventario.
SELECT film.film_id, film.title, inventory_idFROM filmLEFT JOIN inventory ON inventory.film_id = film.film_idWHERE inventory.film_id IS NULL;
Salida: