Existen muchos tipos de joins, los joins son la union de 2 tablas.
Antes de iniciar con el tema, vamos a crear unas tablas de una base de datos, para hacer ejemplos con cada tipo de Join
id | name |
---|---|
1 | Admin |
2 | Juan |
3 | Felipe |
4 | Luis |
id | name | created_by |
---|---|---|
1 | manzana | 2 |
2 | sandia | 1 |
3 | fresa | 3 |
4 | pera | 1 |
5 | melon |
https://res.cloudinary.com/pym/image/upload/c_scale,f_auto,q_auto,w_258/articles/2019/sql/LEFT_JOIN
<aside> 💡 A = Users B = Products
</aside>
Este join lo que va a generar como respuesta es todos los registros que existen en los usuarios dependiendo la consulta, y traera consigo a los productos que haya creado el usuario.
SELECT u.id, u.name as user_name, p.name as product_name from users as u left join products as p on u.id = p.created_by;
id | user_name | product_name |
---|---|---|
1 | Admin | sandia |
1 | Admin | pera |
2 | Juan | manzana |
3 | Felipe | fresa |
4 | Luis | null |
https://res.cloudinary.com/pym/image/upload/c_scale,f_auto,q_auto,w_258/articles/2019/sql/INNER_JOIN
<aside> 💡 A = Users B = Products
</aside>
Este join lo que va a generar como respuesta es todos los registros que coinciden entre ambas tablas.
SELECT u.id, u.name as user_name, p.name as product_name from users as u inner join products as p on u.id = p.created_by;
id | user_name | product_name |
---|---|---|
1 | Admin | sandia |
1 | Admin | pera |
2 | Juan | manzana |
3 | Felipe | fresa |
https://res.cloudinary.com/pym/image/upload/c_scale,f_auto,q_auto,w_258/articles/2019/sql/RIGHT_JOIN
<aside> 💡 A = Users B = Products
</aside>
Este join lo que va a generar como respuesta es todos los registros que existen en los productos dependiendo la consulta, y traera consigo a los usuarios que se relacionen con la creacion.
SELECT u.id, u.name as user_name, p.name as product_name from users as u right join products as p on u.id = p.created_by;
SELECT u.id, u.name as user_name, p.name as product_name from products as p left join users as u on u.id = p.created_by;
id | user_name | product_name |
---|---|---|
1 | Admin | sandia |
1 | Admin | pera |
2 | Juan | manzana |
3 | Felipe | fresa |
null | null | melon |