Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta anidada

Estas en el tema de Consulta anidada en el foro de Bases de Datos General en Foros del Web. Hola .. necesito ver si alguien me puede ayudar con esto tengo la sig estructura de tablas A -> B -> C -> D para ...
  #1 (permalink)  
Antiguo 22/02/2007, 17:17
 
Fecha de Ingreso: mayo-2002
Ubicación: Toluca
Mensajes: 229
Antigüedad: 22 años
Puntos: 2
Consulta anidada

Hola .. necesito ver si alguien me puede ayudar con esto
tengo la sig estructura de tablas

A -> B -> C -> D

para saber cuantos hijos tiene C
basta con hacer una consulta del tipo
SELECT COUNT(D.id)
FROM D, C
WHERE D.idc=C.id

para saber cuantos hijos tiene B
basta con hacer una consulta del tipo
SELECT COUNT(C.id)
FROM C, B
WHERE C.idb=B.id


y asi sucesivamente

pero necesito lo siguiente
cuantos D, C, B tiene cada A
que me salga algo asi
A1 tiene 3 Bs, 8Cs y 12 Ds

supongo que es una consulta anidada ... pero no se como
ya di muchas vueltas con esto, por eso acudo al Dr. FORO :o)

espero me puedan ayudar

De antemano mil gracias !!

Saludos
__________________
Gracias a Foros como este, he podido crear websites y ahora contribuyo a seguir adelante con aportaciones
www.inxenio-dixeno.com Soluciones Web
  #2 (permalink)  
Antiguo 23/02/2007, 08:21
Avatar de Pierre  
Fecha de Ingreso: diciembre-2006
Mensajes: 140
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Consulta anidada

supongo que es en SQL..jiji... pues todas estas tablas tienen un identificador para saber la anidacion de estas seria por el codigo, supongo que en la tabla A existe idA y en B se hereda idA, asi lo unico que tienes que hacer es anidar las tablas por su id de la misma manera en que haces con dos tablas solo que esta vez le haras un JOIN a las cuatro y eso es todo.. suerte
  #3 (permalink)  
Antiguo 23/02/2007, 10:18
 
Fecha de Ingreso: mayo-2002
Ubicación: Toluca
Mensajes: 229
Antigüedad: 22 años
Puntos: 2
Re: Consulta anidada

en efecto .. hasi lo habia hecho, pero no me trae los datos correctos
hice algo de esta manera

SELECT A.nombre, count(B.idA), count(C.idB), count (D.idC)
FROM D, C, B, A
WHERE A.id=B.idA AND C.id=B.idC AND B.id=A.idB

pero no resulta buena !

alguna otra manera ???
__________________
Gracias a Foros como este, he podido crear websites y ahora contribuyo a seguir adelante con aportaciones
www.inxenio-dixeno.com Soluciones Web
  #4 (permalink)  
Antiguo 24/02/2007, 08:12
Avatar de Pierre  
Fecha de Ingreso: diciembre-2006
Mensajes: 140
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Consulta anidada

no se si tu sentencia sea asi o lo haz tipeado mal... si no es asi creo que la sentencia deberia ser algo asi:

SELECT A.nombre, count(B.idA), count(C.idB), count (D.idC)
FROM D, C, B, A
WHERE A.id=B.idA AND C.idB=B.id AND D.idC=C.id

la cuestion esta en los "where", en la estructura que haz dado al inicio una tabla trae a la otra A -> B-> C -> D... eso quiere decir B hereda idA, C hereda idB, y asi... corrige eso y nos dices si funciona o no...
  #5 (permalink)  
Antiguo 26/02/2007, 10:56
 
Fecha de Ingreso: mayo-2002
Ubicación: Toluca
Mensajes: 229
Antigüedad: 22 años
Puntos: 2
Re: Consulta anidada

mm no .. no me funciona ...
tendré que resolverlo con algunas vistas
mmm realemnte queria hacerlo con una misma qry... pero no doy !!!
__________________
Gracias a Foros como este, he podido crear websites y ahora contribuyo a seguir adelante con aportaciones
www.inxenio-dixeno.com Soluciones Web
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:59.