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

Query que diga registros que no tienen replica en otra tabla.

Estas en el tema de Query que diga registros que no tienen replica en otra tabla. en el foro de Bases de Datos General en Foros del Web. Hola me imagino que debe ser sencillo, pero no lo encuentro. Necesito saber que clientes no tienen delegaciones asociadas. Tengo una tabla con cliente (cliente_cliente, ...
  #1 (permalink)  
Antiguo 01/03/2005, 09:51
 
Fecha de Ingreso: diciembre-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
Query que diga registros que no tienen replica en otra tabla.

Hola me imagino que debe ser sencillo, pero no lo encuentro.

Necesito saber que clientes no tienen delegaciones asociadas. Tengo una tabla con cliente (cliente_cliente, cliente_nombre) y otra tabla que relaciona los clientes con sus delegaciones (tabla cliente_delegacion).

Mi problema es que no sé hacer en una único SELECT que registros de la tabla de clientes no tiene registro en la tabla de clientes_delegaciones.

Porfa ayuda.
  #2 (permalink)  
Antiguo 01/03/2005, 10:36
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 22 años, 1 mes
Puntos: 11
este te dice cuantos registros en clientes no estan en delegaciones
select count(id_cliente) from clientes where cliente_cliente not in (select cliente_Delegacion from delegaciones)

y esto te dice cuales son

select * from clientes where cliente_cliente not in (select cliente_Delegacion from delegaciones)

Saludos
__________________
Jorge Mota
Blog
Gubiz estafa
  #3 (permalink)  
Antiguo 01/03/2005, 10:49
 
Fecha de Ingreso: diciembre-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
Muchisimas Gracias

Hola Jorge, muchisimas gracias, me ha funcionado a la primera.


Jose from Madrid (Spain)
  #4 (permalink)  
Antiguo 02/03/2005, 04:56
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 8 meses
Puntos: 0
Un pequeño apunte, si tienes muchos datos, esa consulta resultará lenta de ejecutar, (aunque si te va bien, no te molestes en cambiarla) prueba con algo así

select Clientes.* from clientes LEFT JOIN delegaciones
ON clientes.cliente_cliente = cliente_Delegacion.delegaciones
WHERE (cliente_Delegacion.delegaciones) Is Null

Un saludo
  #5 (permalink)  
Antiguo 03/03/2005, 06:33
 
Fecha de Ingreso: diciembre-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias

Muchas gracias Teri, la verdad es que tengo pocos registros unos 2000 en clientes y unos 2200 en Clientes_delegaciones, por lo que ahora mismo me va a toda pastilla y se ejecuta muy puntualmente. No obstante anoto tu solución porque a lo mejor en un futuro me es necesaria.
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 01:17.