Video Tutorial 5 SQL. Instrucciones SQL JOIN con Mysql Workbench

SQL JOIN se utiliza para combinar registros de dos o más tablas.

SQL JOIN

La instrucción SQL JOIN se utiliza para combinar dos o más tablas, tomando un campo común de las dos.

El JOIN más común es: SQL INNER JOIN (join simple). Un SQL INNER JOIN devuelve todos los registros de varias tablas que cumplen con la condición.

SINTAXIS INNER JOIN

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

ó

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

INNER JOIN es lo mismo que JOIN.

Ejemplo INNER JOIN

En nuestro ejemplo combinamos todos los registros de las tablas "publisher" y "books" cuando se cumple con la condición books.idpublisher=publisher.idpublisher.


SQL LEFT JOIN

La claúsula LEFT JOIN devuelve todas los registros de la tabla de la izquierda (table1), con las correspondientes de la tabla de la derecha (table2). El resultado es NULL en la parte de la derecha cuando no hay registros que correspondan con la condición.

SINTAXIS SQL LEFT JOIN

 SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
 

en algunas bases de datos LEFT JOIN es LEFT OUTER JOIN;

 SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

Ejemplo SQL LEFT JOIN

 

Aquí podemos ver que el resultado es el mismo que el INNER JOIN pero esto es porque todos los registros de "books" tienen un "idpublisher" que coincide con un "idpublisher" de la tabla "publisher". Si insertamos un nuevo registro en la tabla "books", con un "idpublisher" que no coincida con ningun "idpublisher" de la tabla "publisher" (idpublisher=0) entonces;

 

cuando escribimos nuestra consulta LEFT JOIN no vamos a obtener ningún registro de la tabla "publisher";


Claúsula RIGHT JOIN

La instrucción RIGHT JOIN devuelve todas los registros de la tabla de la derecha (table2), y todas los registros correspondientes de la tabla de la izquierda (table1). El resultado será NULL cuando no haya registros correspondientes de la tabla de la izquierda.

SQL RIGHT JOIN Syntax

  SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
  

ó

  SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
  

Ejemplo SQL RIGHT JOIN

Podemos cambiar en la consulta SQL, el orden de las tablas para que veamos que es lo mismo que el LEFT JOIN pero al revés:

<< Anterior Siguiente >>