Escolar Documentos
Profissional Documentos
Cultura Documentos
eamexicano +
Consultas en ms de una tabla I Consultas
Anidadas
Hasta ahora hemos consultado datos que se encuentran almacenados en una sola tabla.
Tambin sabemos que es posible encontrar datos relacionados almacenados en distintas
tablas.
Antes de comenzar con las consultas anidadas muestro el esquema de la base de datos -
tutoriales -. La puedes descargar aqu.
http://blog.eamexicano.com/mysql/consultas-anidadas/ 1/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
eamexicano +
Es probable que la interfaz de PHPMyAdmin sea distinta porque ya tiene algunos aos el
video.
http://blog.eamexicano.com/mysql/consultas-anidadas/ 2/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
El esquema de la Base de Datos nos sirve para visualizar tablas, campos con su tipo de
eamexicano
dato, y relaciones entre tablas la estructura de la Base de Datos. En este caso que vamos
+
a comenzar con consultas anidadas nos sirve para saber dnde estn almacenados los
datos. Con esto vamos a poder de nir la(s) consulta(s) que tenemos que realizar a partir de
los datos que tenemos para obtener los datos que necesitemos.
Las consultas anidadas o subconsultas son dos o ms consultas donde el resultado de una
consulta se utiliza como parmetro valor para realizar la siguiente consulta.
Consulta exterior.
Esta consulta utiliza el resultado de la consulta interior como parmetro y muestra el
resultado que queremos obtener.
Pueden existir cualquier nmero de consultas anidadas. Las consultas se realizan del interior
al exterior.
Ejemplo:
Si queremos mostrar el ttulo de las publicaciones que tienen asignado el nivel con nombre
fcil haramos el siguiente proceso:
http://blog.eamexicano.com/mysql/consultas-anidadas/ 3/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
http://blog.eamexicano.com/mysql/consultas-anidadas/ 4/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
eamexicano +
Es posible utilizar los distintos operadores de comparacin que hemos visto para ltrar los
resultados obtenidos de las consultas anidadas.
http://blog.eamexicano.com/mysql/consultas-anidadas/ 5/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
eamexicano +
) AND usuario_id IN (
SELECT id FROM usuarios WHERE nombre LIKE "%Eileen%"
);
http://blog.eamexicano.com/mysql/consultas-anidadas/ 6/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
eamexicano +
Misma consulta anterior pero ltrando los resultados para mostrar las publicaciones que
tengan en el ttulo el trmino css.
) AND usuario_id IN (
http://blog.eamexicano.com/mysql/consultas-anidadas/ 7/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
eamexicano +
eamexicano
Finalmente cmo podemos obtener el ttulo de las publicaciones que tienen la etiqueta
html?
En este caso es una relacin M:M donde una etiqueta puede clasi car muchas publicaciones
y una publicacin puede estar clasi cada por muchas etiquetas.
Si recordamos, para este tipo de relaciones se crea una tabla de unin JOIN TABLE
donde se encuentran las llaves primarias de las tablas que est uniendo.
http://blog.eamexicano.com/mysql/consultas-anidadas/ 8/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
--
eamexicano
Obtener el id de la etiqueta que tiene el nombre html.
+
-- Vamos a nombrar esta consulta como "consulta_1"
SELECT publicacion_id
FROM etiquetas_publicaciones
-- Con las llaves primarias de las publicaciones obtener el ttulo de las mismas.
SELECT titulo
FROM publicaciones
WHERE id IN ("consulta_2");
SELECT publicacion_id
FROM etiquetas_publicaciones
WHERE etiqueta_id = (
);
SELECT titulo
FROM publicaciones
WHERE id IN (
SELECT publicacion_id
FROM etiquetas_publicaciones
WHERE etiqueta_id = (
"consulta_1 "
)
);
http://blog.eamexicano.com/mysql/consultas-anidadas/ 9/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
FROM publicaciones
WHERE id IN (
SELECT publicacion_id
FROM etiquetas_publicaciones
WHERE etiqueta_id IN (
)
);
Aunque el desempeo se puede ver afectado por factores como el nmero de registros en
las tablas involucradas, el tipo de relacin a ltrar y los ltros adicionales a la relacin y al
http://blog.eamexicano.com/mysql/consultas-anidadas/ 10/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
principio pueden parecer complicadas, las consultas anidadas nos pueden ayudar en el
eamexicano
primer caso que se plante:
+
Qu podemos hacer cuando queremos obtener datos relacionados a un registro que estn
almacenados en otra tabla?
Ej.
Si en lugar de querer el ttulo de las publicaciones que tienen el nivel fcil quieres las que
tienen el valor difcil, lo nico que tienes que hacer es cambiar el trmino.
Comprtelo:
http://blog.eamexicano.com/mysql/consultas-anidadas/ 11/12
16/8/2017 Consultas en ms de una tabla I - Consultas Anidadas - eamexicano
0 Comments
eamexicano
eamexicano
+
1 Login
Comienza la discusin...
Name
S el primero en comentar.
TAMBIN EN EAMEXICANO
lepet.js XMLHttpRequest
2 comments hace 2 aos 1 comment hace 2 aos
eamexicano Hola Albin. Desde mi Juan Cuellar excelente aporte
punto de vista el uso de los atributos data
dentro del HTML puede terminar como el
uso de las etiquetas style para modificar
Mapbox Habilitar Apache en Yosemite
1 comment hace 2 aos 1 comment hace 2 aos
James Albert Wesker Hola, sabes Jorge Hola! Realice todos estos paso y
como se hace para delimitar los estados funcion hasta cuando abr en safari
de mexico mediante match id para no http://localhost/, con lo cual abrir "It
http://blog.eamexicano.com/mysql/consultas-anidadas/ 12/12