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

Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Estas en el tema de Gran duda con una Query - No recorrer completamente una tabla. sera posible? en el foro de Bases de Datos General en Foros del Web. Buenas. Es mi primer mensaje en este gran foro. Les cuento, resulta que necesito hacer una consulta que me recupere los datos de la Tabla ...
  #1 (permalink)  
Antiguo 29/06/2007, 08:36
 
Fecha de Ingreso: junio-2007
Mensajes: 5
Antigüedad: 16 años, 10 meses
Puntos: 1
Mensaje Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Buenas.
Es mi primer mensaje en este gran foro.
Les cuento, resulta que necesito hacer una consulta que me recupere los datos de la Tabla A que tengan al menos 1 ocurrencia en la Tabla B.

Por ejemplo: sea A la tabla vendedores, y la Tabla V ventas_vendedores, las cuales pueden estar relacionadas por el codigo dle vendedor.

Mi duda es: Como hago para rescatar aquellos Vendedores (tabla A) que tengan al menos 1 venta pero sin necesidad de recorrer la Tabla B completa. Es decir cuando encuentre una ocurrencia la query termine. Esto puede ayudarme bastante, ya que en mi caso tengo una tabla B bastante grande y no deseo recorrerla completa y no tengo otros datos para filtrarla.

Espero que me hayan entendido y ojala sea posible hacer algo asi.
  #2 (permalink)  
Antiguo 29/06/2007, 15:27
 
Fecha de Ingreso: junio-2007
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Hola

Si entiendo lo que quieres, intenta este query:

select * from vendedores a
where a.dle = (select distinct b.dle from ventas_vendedores b)

Espero esto te ayude

Esteban
http://www.erinfotechserv.com
  #3 (permalink)  
Antiguo 04/07/2007, 09:40
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Estás pensando en el esquema de archivos planos y no en esquema relacional.

Si tienes índices bien definidos no tendrás problemas en recorrer la tabla completa y hacerlo a través de un query normal.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 05/07/2007, 06:30
 
Fecha de Ingreso: junio-2007
Mensajes: 5
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Gracias por sus respuestas,
Intentare lo que dice esteban y me fijare tambien en los indices, lo que pasa es que son base de datos ya antiguas en as400 y no las podemos modificar.
  #5 (permalink)  
Antiguo 05/07/2007, 12:56
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Re: Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Mas bien yo creo que seria algo asi como:
Código:
select * from vendedores
where dle In (select distinct dle from ventas_vendedores);
Saludos.
__________________
Yo tan sólo se, que no he senado
  #6 (permalink)  
Antiguo 08/07/2007, 06:38
Avatar de mjuarez  
Fecha de Ingreso: julio-2007
Mensajes: 49
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Lo que dice onlykfk es correcto, debe correrse el query con el operador IN.
  #7 (permalink)  
Antiguo 10/07/2007, 02:18
 
Fecha de Ingreso: junio-2006
Mensajes: 87
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Gran duda con una Query - No recorrer completamente una tabla. sera posible?

Te doy otra alternativa para que pruebes cuestiones de velocidad:
Código:
select * from vendedores v
where exists (select 1 
                   from ventas_vendedores vv 
                   where v.dle=vv.dle);
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:07.