Foros del Web » Programando para Internet » ASP Clásico »

ayuda con consulta

Estas en el tema de ayuda con consulta en el foro de ASP Clásico en Foros del Web. hola! siempre tengo dificultades con las tablas relacionads. y no logro hacerlas con access, pero bueno el tema es asi.. tengo una tabla "productos" y ...
  #1 (permalink)  
Antiguo 17/07/2004, 19:23
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
ayuda con consulta

hola! siempre tengo dificultades con las tablas relacionads.
y no logro hacerlas con access, pero bueno
el tema es asi.. tengo una tabla "productos" y una tabla "fotos" la cual relaciono con productos con el IDproducto
el tema es que haciendo por ej
select* from productos, fotos where productos.IDproducto = fotos.IDproducto
me devuelve mas de 1 registro (porque hay varias fotos por producto)
de que manera podria devolverme solo uno.. el primero? no se me ocurre de que manera relacionarlo
muchas gracias!!
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 17/07/2004, 19:45
Avatar de tomyguan  
Fecha de Ingreso: octubre-2003
Ubicación: bdn forever
Mensajes: 41
Antigüedad: 21 años, 7 meses
Puntos: 0
prueba con select top(1) ...

Pero de todas formas para mas datos, deja mas claro la estructura de la BD (tablas) e idea genaral
__________________
Mi Blog
  #3 (permalink)  
Antiguo 17/07/2004, 20:21
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
TOP 1 me devolvera solo un registro..
y me tiene que devolver todos los PRODUCTOS y ademas el FOTOS.ID_FOTO

la estructura es asi
tabla productos:
IDproducto, titulo
tabla fotos
IDfoto,IDproducto (solo esos dos datos porque guardo las imagenes con este IDfoto)
entoces la consulta deberia devolverme todos los PRODUCTOS y el primer IDfoto que encuentre

muchas gracias!
__________________
On error no hago nada porque deje de fumar...
  #4 (permalink)  
Antiguo 17/07/2004, 21:37
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
Yo lo haría + o - así:

1 recorserdset para productos, una vez que obtengo el id lo paso al otro y ahí lo obtengo

set ob_rs=server.CreateObject("ADODB.RECORDSET")
set ob_rs1=server.CreateObject("ADODB.RECORDSET")

sql=" * from productos"
ob_rs.Open sql,cl

while not ob_rs.eof
'mas operaciones...
id_=ob_rs("IDproducto")
'obtenemos el id a buscar...
sql1=" * from fotos where IDproducto="&cint(id_)
ob_rs1.Open sql1,cl
fotoid=ob_rs1.("IDproducto")
ob_rs1.close
ob_rs1.movenext
loop


Observa que no tengo que ocupar el top.. es cosa de buscar alternativas.
  #5 (permalink)  
Antiguo 17/07/2004, 21:40
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
Sorry es: ob_rs.movenext en vez de ob_rs1.movenext
  #6 (permalink)  
Antiguo 17/07/2004, 21:48
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
si busque una alternativa.. hice una funcion que devuelve 1 solo registro pero la estoy llamando cada vez que paso por un registro, y para acelerar un poco el tema vio...
creo que con esta sugerencia sucederia lo mismo que con una funcion
__________________
On error no hago nada porque deje de fumar...
  #7 (permalink)  
Antiguo 18/07/2004, 06:26
Avatar de tomyguan  
Fecha de Ingreso: octubre-2003
Ubicación: bdn forever
Mensajes: 41
Antigüedad: 21 años, 7 meses
Puntos: 0
De acuerdo

tu pregunta:

Cita:
Iniciado por dieguicho
select* from productos, fotos where productos.IDproducto = fotos.IDproducto
me devuelve mas de 1 registro (porque hay varias fotos por producto)
de que manera podria devolverme solo uno.. el primero?
mi respuesta:
Cita:
Iniciado por tomyguan
prueba con select top(1) ...

Pero de todas formas para mas datos, deja mas claro la estructura de la BD (tablas) e idea genaral
tu respuesta a mi respuesta:

Cita:
Iniciado por dieguicho
TOP 1 me devolvera solo un registro..
y me tiene que devolver todos los PRODUCTOS y ademas el FOTOS.ID_FOTO
A ver yo creo que he contestado bien a tu pregunta pero con tu respuesta no me queda claro que tu tengas claro (valgase la redundancia) que preguntas.!!!

A ver por lo que entiende quieres traerte todos los productos con su foto correspondiente. entonces seria asi

Select * from productos a, fotos b where b.idproducto=a.idproducto

Pero ten en cuenta que te traera todos los productos con su foto que si la foto es ta repetida es lo que hay.

Espero poder ayudarte y todo es en buena onda
__________________
Mi Blog
  #8 (permalink)  
Antiguo 18/07/2004, 08:27
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
Talvez como lo entiendo es que un producto x tiene varias fotos ya sea de un perfil ,color tamaño etc. A eso se refiere el tal dieguicho.A mi forma de parecer está mal su diseño, ya que yo involucraria otra tabla más que estuviera relacionada con la de las fotos. Asi no tendrías que estar batallando.
  #9 (permalink)  
Antiguo 18/07/2004, 09:08
Avatar de tomyguan  
Fecha de Ingreso: octubre-2003
Ubicación: bdn forever
Mensajes: 41
Antigüedad: 21 años, 7 meses
Puntos: 0
Cita:
Iniciado por orharo2003
Talvez como lo entiendo es que un producto x tiene varias fotos ya sea de un perfil ,color tamaño etc. A eso se refiere el tal dieguicho.A mi forma de parecer está mal su diseño, ya que yo involucraria otra tabla más que estuviera relacionada con la de las fotos. Asi no tendrías que estar batallando.
Tienes toda la razón orharo2003, no habia entendido esa posibilidad de que un mismo producto tenga varias fotos, habria que hacer otro analisis de la BD para poder llegar a algo mucho más optimo, es la pena de no hacer un buen analisis desde el principio.
__________________
Mi Blog
  #10 (permalink)  
Antiguo 18/07/2004, 15:10
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
creo que la estan complicando mas de lo que es.
si usas TOP 1 devolvera un solo registro, asi este relacionado como 1000 tablas.

...where a.IDproducto = b.IDproducto
devolvera todos los productos pero tambien todas las fotos.
necesito que devuelva solo una foto. si no es puede la respuesta es NO SE PUEDE y ya.
gracias igualmente
__________________
On error no hago nada porque deje de fumar...
  #11 (permalink)  
Antiguo 18/07/2004, 16:00
Avatar de tomyguan  
Fecha de Ingreso: octubre-2003
Ubicación: bdn forever
Mensajes: 41
Antigüedad: 21 años, 7 meses
Puntos: 0
Desacuerdo

Cita:
Iniciado por dieguicho
creo que la estan complicando mas de lo que es.
si usas TOP 1 devolvera un solo registro, asi este relacionado como 1000 tablas.

...where a.IDproducto = b.IDproducto
devolvera todos los productos pero tambien todas las fotos.
necesito que devuelva solo una foto. si no es puede la respuesta es NO SE PUEDE y ya.
gracias igualmente
Recuerda que quien te contesta es pq intenta ayudarte., Si no estas dispuesto a aceptar que no te solucionen los problemas tu sabras que hacer.

Un saludo.

PD: Te recuerdo que las mayusculas indican alzar la voz (gritar), es la manera de dar enfasis en las frases de manera clara, en forma escrita.
__________________
Mi Blog

Última edición por tomyguan; 18/07/2004 a las 16:04
  #12 (permalink)  
Antiguo 19/07/2004, 09:37
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
si estoy dispuesto a que me ayuden sino no hubiera posteado la pregunta (de saberlo no necesito preguntarlo)

si estas susceptible no participes del post y listo te ahorro el disgusto.
__________________
On error no hago nada porque deje de fumar...
  #13 (permalink)  
Antiguo 19/07/2004, 10:18
Avatar de tomyguan  
Fecha de Ingreso: octubre-2003
Ubicación: bdn forever
Mensajes: 41
Antigüedad: 21 años, 7 meses
Puntos: 0
Cita:
Iniciado por dieguicho
si estoy dispuesto a que me ayuden sino no hubiera posteado la pregunta (de saberlo no necesito preguntarlo)

si estas susceptible no participes del post y listo te ahorro el disgusto.
Disgusto ninguno para mi ha sido un placer.... Un saludo
__________________
Mi Blog
  #14 (permalink)  
Antiguo 19/07/2004, 10:52
 
Fecha de Ingreso: julio-2004
Mensajes: 5
Antigüedad: 20 años, 9 meses
Puntos: 0
y si le agregas otra condicion al query?
  #15 (permalink)  
Antiguo 19/07/2004, 12:44
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
tirame una punta asi hago pruebas...
gracias!
__________________
On error no hago nada porque deje de fumar...
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 08:14.