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 >> |