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

[SOLUCIONADO] Registro duplicado/ sentencia inner join

Estas en el tema de Registro duplicado/ sentencia inner join en el foro de Mysql en Foros del Web. Hola a todos estoy tratando de hacer una consulta de busqueda con 5 tablas en mysql el problema que tengo es que me muestra el ...
  #1 (permalink)  
Antiguo 30/08/2015, 08:18
Avatar de Blace57  
Fecha de Ingreso: mayo-2014
Mensajes: 8
Antigüedad: 9 años, 10 meses
Puntos: 0
Registro duplicado/ sentencia inner join

Hola a todos estoy tratando de hacer una consulta de busqueda con 5 tablas en mysql el problema que tengo es que me muestra el resultado pr duplicado
Esta es la relacion que tengo

Esta es mi consulta
SELECT nacionalidad.ID_NACIONALIDAD, nacionalidad.NOMBRE_NACIONALIDAD, nacionalidad.CANTIDAD, nivel_educacion.NIVEL, nivel_educacion.ESTADO_EDUCACION, nivel_educacion.CANTIDAD_EDUCANDOS, servicio_basico.TIPO_SERVICIO, servicio_basico.ESTADO, servicio_basico.CANTIDAD_ABONADOS
FROM nacionalidad
INNER JOIN edunac ON edunac.ID_NACIONALIDAD= nacionalidad.ID_NACIONALIDAD
INNER JOIN nivel_educacion ON nivel_educacion.ID_EDUCACION = edunac.ID_EDUCACION
INNER JOIN nacserbas ON nacserbas.ID_NACIONALIDAD= nacionalidad.ID_NACIONALIDAD
INNER JOIN servicio_basico ON servicio_basico.ID_SERVICIO = nacserbas.ID_SERVICIO WHERE NOMBRE_NACIONALIDAD=%s ORDER BY NOMBRE_NACIONALIDAD ASC", GetSQLValueString($colname_rsvoluntarios, "text"));

Y este es el resulatdo


En este resultado deberian aparecer solo dos resultados uno que diga "Basico" y el otro "Secundaria" y no como esta ahi dos de cada uno no se cual es el error si alguien me pudiera ayudar de antemano muchas gracias por su ayuda.
  #2 (permalink)  
Antiguo 30/08/2015, 09:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Registro duplicado/ sentencia inner join

¿Eso qué tiene que ver con código PHP exactamente?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/08/2015, 09:50
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Registro duplicado/ sentencia inner join

Cita:
Iniciado por Blace57 Ver Mensaje
Hola a todos estoy tratando de hacer una consulta de busqueda con 5 tablas en mysql el problema que tengo es que me muestra el resultado pr duplicado
Esta es la relacion que tengo

Esta es mi consulta
SELECT nacionalidad.ID_NACIONALIDAD, nacionalidad.NOMBRE_NACIONALIDAD, nacionalidad.CANTIDAD, nivel_educacion.NIVEL, nivel_educacion.ESTADO_EDUCACION, nivel_educacion.CANTIDAD_EDUCANDOS, servicio_basico.TIPO_SERVICIO, servicio_basico.ESTADO, servicio_basico.CANTIDAD_ABONADOS
FROM nacionalidad
INNER JOIN edunac ON edunac.ID_NACIONALIDAD= nacionalidad.ID_NACIONALIDAD
INNER JOIN nivel_educacion ON nivel_educacion.ID_EDUCACION = edunac.ID_EDUCACION
INNER JOIN nacserbas ON nacserbas.ID_NACIONALIDAD= nacionalidad.ID_NACIONALIDAD
INNER JOIN servicio_basico ON servicio_basico.ID_SERVICIO = nacserbas.ID_SERVICIO WHERE NOMBRE_NACIONALIDAD=%s ORDER BY NOMBRE_NACIONALIDAD ASC", GetSQLValueString($colname_rsvoluntarios, "text"));

Y este es el resulatdo


En este resultado deberian aparecer solo dos resultados uno que diga "Basico" y el otro "Secundaria" y no como esta ahi dos de cada uno no se cual es el error si alguien me pudiera ayudar de antemano muchas gracias por su ayuda.
¿Entre tus resultados duplicados se muestra el mismo valor en el campo cantidad?
Si el resultado de ese campo es distinto sólo tienes que agrupar los campos.
GROUP BY nacionalidad.ID_NACIONALIDAD,, para usar la clausula GROUP BY tendrías que usar el select
de la siguiente manera

SELECT nacionalidad.ID_NACIONALIDAD, nacionalidad.NOMBRE_NACIONALIDAD, COUNT(nacionalidad.CANTIDAD)AS CANTIDAD,.... from ...


¿Qué datos tiene la tabla edunac?
Por otro lado, creo que este post debería de estar en mysql y no php. jejeje
  #4 (permalink)  
Antiguo 30/08/2015, 22:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Registro duplicado/ sentencia inner join

Muevo el tema de PHP a MySQL.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 30/08/2015, 22:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Registro duplicado/ sentencia inner join

Vamos a hacer una aclaración necesaria: En Bases de Datos hay duplicación en el resultado de una consulta si y sólo si todos los campos devueltos entre dos registros cualesquiera contienen exactamente los mismos valores . Si al m nos hay un campo donde los valores son diferentes, eso no es duplicación
Ahora bien, el que se repita parcialmente el contenido de algunos campos sólo nos dice que hay una relación N:M entre dos o más tablas, y que las condiciones de la consulta no son suficientemente discrminantes para el resultado que TU buscas.
Pero no implica que haya error. En todo caso hay que afinar la consulta.
Postea el resultado que obtienes, y un ejemplo de lo que tu dices que deberías obtener. Con eso podremos ver mejor lo que hay que cambiar en la query.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: php
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 23:21.