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

Me salen repetidos los registros

Estas en el tema de Me salen repetidos los registros en el foro de Bases de Datos General en Foros del Web. Hola buenas!!!!!!!!! Tengo un problemilla: Tengo tablas 1 a 1 y tablas 1 a N, la cosa es que al introducir datos me lo hace ...
  #1 (permalink)  
Antiguo 04/05/2004, 02:59
 
Fecha de Ingreso: abril-2004
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
Pregunta Me salen repetidos los registros

Hola buenas!!!!!!!!!

Tengo un problemilla:
Tengo tablas 1 a 1 y tablas 1 a N, la cosa es que al introducir datos me lo hace todo correcto. He introducido 4 registros: dos con el nombre de laura y otros dos diferentes. La cosa es que al hacer la consulta por nombre y pongo laura en vez de salirme 2 registros me salen 22, ya que me repite el nombre de laura tantas veces como he puesto datos en las tablas de N.

¿Como puedo solucionarlo? Ya he probado con el distinct y me hace lo mismo. ¿Puede que sea porque he hecho la consulta utilizando asteriscos?

Gracias por atender mis suplicas ;)
__________________
lauri siempre vuestra :corazon:
  #2 (permalink)  
Antiguo 04/05/2004, 03:39
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
En la consulta estás mostrando datos de la tabla donde está el nombre y la relacionada, entonces te saca todos los registros relacionados, o puede ser que en la consulta estés relacionando mal las tablas.
  #3 (permalink)  
Antiguo 04/05/2004, 03:41
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 20 años, 3 meses
Puntos: 0
Pon la consulta aqui y te la solucionamos en un segundo...
  #4 (permalink)  
Antiguo 04/05/2004, 03:45
 
Fecha de Ingreso: abril-2004
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
es muy larga pero ayá va:


SELECT DISTINCT DatosPersonales.Nombre, DatosPersonales.PrimerApellido, CodigoCandidatura.*, Contratacion.*, DatosPersonales.*, FormacionComplementaria.*, FormacionProfesional.*, Franquiciado.*, HistorialLaboral.*, OtrosDatosInteres.*, SeguimientoFranquiciado.*, Seleccion.*, *
FROM CodigoCandidatura INNER JOIN ((((((((Contratacion INNER JOIN DatosPersonales ON Contratacion.CodigoCandidatura = DatosPersonales.CodigoCandidatura) INNER JOIN FormacionComplementaria ON Contratacion.CodigoCandidatura = FormacionComplementaria.CodigoCandidatura) INNER JOIN FormacionProfesional ON Contratacion.CodigoCandidatura = FormacionProfesional.CodigoCandidatura) INNER JOIN Franquiciado ON Contratacion.CodigoCandidatura = Franquiciado.CodigoCandidatura) INNER JOIN HistorialLaboral ON Contratacion.CodigoCandidatura = HistorialLaboral.CodigoCandidatura) INNER JOIN OtrosDatosInteres ON Contratacion.CodigoCandidatura = OtrosDatosInteres.CodigoCandidatura) INNER JOIN SeguimientoFranquiciado ON Contratacion.CodigoCandidatura = SeguimientoFranquiciado.CodigoCandidatura) INNER JOIN Seleccion ON Contratacion.CodigoCandidatura = Seleccion.CodigoCandidatura) ON (CodigoCandidatura.Codigo = Seleccion.CodigoCandidatura) AND (CodigoCandidatura.Codigo = SeguimientoFranquiciado.CodigoCandidatura) AND (CodigoCandidatura.Codigo = OtrosDatosInteres.CodigoCandidatura) AND (CodigoCandidatura.Codigo = HistorialLaboral.CodigoCandidatura) AND (CodigoCandidatura.Codigo = Franquiciado.CodigoCandidatura) AND (CodigoCandidatura.Codigo = FormacionProfesional.CodigoCandidatura) AND (CodigoCandidatura.Codigo = FormacionComplementaria.CodigoCandidatura) AND (CodigoCandidatura.Codigo = DatosPersonales.CodigoCandidatura) AND (CodigoCandidatura.Codigo = Contratacion.CodigoCandidatura)
WHERE (((DatosPersonales.Nombre)=[introduce nombre])) OR (((DatosPersonales.PrimerApellido)=[introduce primer apellido]));


Quiero esta consulta para mostrar los datos en un formulario distinto al de meter datos, pero se podria hacer la consulta en el mismo formulario de meter datos?
__________________
lauri siempre vuestra :corazon:
  #5 (permalink)  
Antiguo 04/05/2004, 04:36
 
Fecha de Ingreso: abril-2004
Mensajes: 48
Antigüedad: 20 años
Puntos: 0
Vaya consulta!! Tardaste tu tiempo para hacerla,no?
Yo veo dos cosas que me extrañan.

Cuando seleccionas los campos a visualizar, al final hay un asterisco suelto, a que datos te refieres?

SELECT DISTINCT DatosPersonales.Nombre, DatosPersonales.PrimerApellido, CodigoCandidatura.*, Contratacion.*, DatosPersonales.*, FormacionComplementaria.*, FormacionProfesional.*, Franquiciado.*, HistorialLaboral.*, OtrosDatosInteres.*, SeguimientoFranquiciado.*, Seleccion.*, *

La segunda es que al final de la consulta repites de nuevo todas las comparaciones que habías hecho con los ON, pero esta vez las vuelves a añadir con el AND, porque?

ON (CodigoCandidatura.Codigo = Seleccion.CodigoCandidatura) AND (CodigoCandidatura.Codigo = SeguimientoFranquiciado.CodigoCandidatura) AND (CodigoCandidatura.Codigo = OtrosDatosInteres.CodigoCandidatura) AND (CodigoCandidatura.Codigo = HistorialLaboral.CodigoCandidatura) AND (CodigoCandidatura.Codigo = Franquiciado.CodigoCandidatura) AND (CodigoCandidatura.Codigo = FormacionProfesional.CodigoCandidatura) AND (CodigoCandidatura.Codigo = FormacionComplementaria.CodigoCandidatura) AND (CodigoCandidatura.Codigo = DatosPersonales.CodigoCandidatura) AND (CodigoCandidatura.Codigo = Contratacion.CodigoCandidatura)

Quizás modificando alguna de esas cosas se te soluciones el problema, aunque como que tampoco he podido analizar mucho la consulta al no estar familiarizado con la base de datos tampoco no sé si lo que digo es lógico o no. Espero que te ayude en algo.
  #6 (permalink)  
Antiguo 04/05/2004, 05:12
 
Fecha de Ingreso: abril-2004
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
Es que no lo hice con sql lo hice con la vista diseño, meti todos los campos con el asterisco y en el criterio del nombre puse introduce nombre y en el del apellido puse introduce apellido. Simplemente eso para ponerlo en un formulario aparte del de introducir datos. Pero es posible buscar el nombre o los apellidos sin necesidad de hacer consulta?
__________________
lauri siempre vuestra :corazon:
  #7 (permalink)  
Antiguo 04/05/2004, 08:09
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Vuelve a diseñar la consulta, esta vez quita el asterisco, ya estás seleccionando los campos que quieres mostrar de cada tabla, al ir añadiendo tablas, deberías hacer una cosa, supongo que ya te salen relacionadas, si es así, elimina esa relación y créala de nuevo, parece que estés relacionando las tablas entre sí más de una vez.

Para buscar los datos a mostrar en un formulario, casi mejor sería que en ese formulario pusieras un par de campos, donde introducir que es lo que quieres buscar, y luego, una de dos, aplicar un filtro al formulario con las propiedades filter y filteron, o mejor aún si modificas el origen del registro del formulario con la consulta que tienes, pero filtrando.

Un saludo
  #8 (permalink)  
Antiguo 04/05/2004, 09:02
 
Fecha de Ingreso: abril-2004
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
Lo de eliminar las relaciones e ir poniendolas poco a poco ya lo he hecho y me salen muchos registros de nuevo, la cosa es que quiero buscar solo por nombre o solo por apellido o por las dos a la vez. Si pongo las dos a la vez me sale bien, pero si solo pongo una me salen un monton.

¿Como aplico un filtro al formulario, donde lo hago?
__________________
lauri siempre vuestra :corazon:
  #9 (permalink)  
Antiguo 04/05/2004, 11:12
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Vale... eso es por el Or cambialo por un AND, pero cambai un poco el WHERE para hacer un LIKE (todo superclaro)

cambiar el final por algo así

WHERE (((DatosPersonales.Nombre) like "*" & [introduce nombre] & "*")) AND (((DatosPersonales.PrimerApellido) LIKE"*" & [introduce primer apellido] & "*"));

Suerte
  #10 (permalink)  
Antiguo 05/05/2004, 04:56
 
Fecha de Ingreso: abril-2004
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
ya salió, era una chorradilla q buscando buscando lo he encontrado. Era relacionar 2 tablas en vez de todas. Muchas gracias porque gracias a vosotros lo he conseguido sacar.

Muchos besos.
Siempre vuestra Lauri
__________________
lauri siempre vuestra :corazon:
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 21:55.