Vous êtes sur la page 1sur 2

NATURAL JOIN.

Este tipo de join est basada en todas las columnas con igual nombre entre
ambas tablas.
Ejemplo:
select c.id as "codigo cargo", c.cargo as cargo, u.estado as estado from cargo as c natural join
usuario as u;
JOIN USING. Permite indicar las columnas a combinar entre dos tablas.
Ejemplo:
select p.nombre as "Nombre proveedor", c.total as Total from proveedor as p join compra as c
using(proveedor_id);
select d.nombre as "Nombre documento", c.total as "Compra total", p.nombre as "Nombre
proveedor"
from documento as d
join compra as c using (documento_id)
join proveedor as p using (proveedor_id);
JOIN ON. La condicin que permite combinar ambas tablas se debe especificar en la clapsula
ON.
Ejemplo:
select p.nombre as "Nombre proveedor", c.total as Total from proveedor as p join compra as c
on p.id=c.proveedor_id;
STRAIGHT_JOIN. MYSQL no se preocupa del orden en que aparecen las tablas en un JOIN. El
optimizador probara todas las combinaciones y escoger la que crea ms eficiente. Esto puede
provocar que algunas veces la eleccin no sea la ms ptima. Para comprobarlo siempre
podemos usar EXPLAIN. Si el resultado nos confirma que existe un orden mejor, se puede usar
STRAIGHT_JOIN.
Ejemplo:
En la siguiente consulta se ilustra el uso de STRAIGHT_JOIN para hacer consultas a ms de dos
tablas.
select p.nombre as "Nombre proveedor", c.total as Total, d.nombre as "Nombre documento"
from proveedor as p
straight_join compra as c on p.id=c.proveedor_id
straight_join documento as d on c.documento_id=d.id;

JOINS EXTERNOS:
Una combinacin externa amplia el resultado de una combinacin simple. Una combinacin
externa devuelve todas las filas que satisfagan la condicin de combinacin y tambin
devuelve todas o partes de las filas de una tabla para el cual ninguna filas de la otra satisfagan
la condicin de combinacin.
LEFT JOIN.
o Sintaxis:
Tabla1 NATURAL LEFT [OUTER] JOIN Tabla2
Tabla1 LEFT [OUTER] JOIN Tabla2 ON Condicion
Este tipo de combinacin dar como resultado las filas que se combinan, pero
incluir las filas de la tabla que se encuentra a la izquierda del operador que no
se combinan, tal como se puede apreciar en el ejemplo 10.25
Ejemplo:
select p.nombre as "Nombre proveedor", c.total as Total
from proveedor as p
left join compra as c on p.id=c.proveedor_id;
RIGHT JOIN.
o Sintaxis:
Tabla1 NATURAL RIGHT [OUTER] JOIN Tabla2
Tabla1 RIGHT [OUTER] JOIN Tabla2 ON Condicion
Este tipo de combinacin dara como resultado las filas que se combinan, pero
incluir las filas de la tabla que se encuentra a la derecha del operador que no
se combinan, tal como se puede apreciar en el ejemplo 10.26
Ejemplo:
select c.id as "codigo cargo", c.cargo as cargo, u.estado as estado
from cargo as c right join usuario as u on c.id=u.cargo_id;
10.2.7. CONSULTAS AUTOREFERENCIADAS:
Este tipo de consultas se hace referencia a la misma tabla dos veces en la misma consulta, esto
se consigue asignando alias diferentes.
Este tipo de consultas se construyen sobre tablas que tambin estn auto referenciadas.
Ejemplo 10.27
10.3. SUBCONSULTAS:
Una subconsulta es una consulta dentro de otra consulta. Una subconsulta responde a
consultas que tienen mltiples partes; la subconsulta responde una parte de toda la consulta.
Cuando se anidan muchas sub consultas, las consultas ms internas son las que se evalan
primero. Las subconsultas se pueden utilizar en todas las instrucciones DML.

Vous aimerez peut-être aussi