| ||||
Duda con consulta en mysql Hola amigos tengo una duda por que se repiten mis datos en esta consulta? las dos tablas estan relacionacionadas pero no se por que cuando la ejecuta me muesrta los datos repetidos en realidad en la tabla se muestran dos registros y la ejecuccion de esta consulta se multiplica dos veces por ejemplo tengo 2 registros me muestran 4 registros por que sera http://imgur.com/zvRIasb http://imgur.com/66gzy6D
__________________ Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre. Última edición por joseanguiano; 25/10/2015 a las 11:57 Razón: a |
| ||||
Respuesta: Duda con consulta en mysql Cita: Hola gnzsoloyo gracias por contestar, no es que abuse de tu confianza pero podrias regalarme algun ejemplo de como podría quedar como tu me comentas no entiedo como es lo que me dices puedes ayudarme ? saludos
Iniciado por gnzsoloyo Estas haciendo un JOIN incondicional, con lo que te devolverá N × M registros. Es el comportamiento normal y esperado de un JOIN de esa clase. Como mínimo deberás indicar cual es la relación entre las tablas, que campo con que campo, o MySQL los relacionará por nombre del mismo, sin importar los datos que contengan y así el resultado será incorrecto.
__________________ Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre. |
| ||||
Respuesta: Duda con consulta en mysql Cita:
Iniciado por gnzsoloyo Estas haciendo un JOIN incondicional, con lo que te devolverá N × M registros. Es el comportamiento normal y esperado de un JOIN de esa clase. Como mínimo deberás indicar cual es la relación entre las tablas, que campo con que campo, o MySQL los relacionará por nombre del mismo, sin importar los datos que contengan y así el resultado será incorrecto. Hola de nuevo amigo gnzsoloyo he leido un poco mas y he intentado esto que te parece?
Código MySQL:
Ver original Lo he probado y corre bien en mysql Workbench Código HTML: Notas algo inconcluso saludos
__________________ Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre. |
| ||||
Respuesta: Duda con consulta en mysql Vamos por el principio: Cita: Comencemos por aclarar un detalle: EN BBDD se considera que un resultado contiene registros duplicados si Y SÓLO SI todos los campos devueltos entre dos registros cualesquiera contiene valores que se repiten entre ellos. Pero si al menos UNO de los campos o columnas contiene un valor diferente al otro registro, eso NO ES REPETICIÓN.Hola amigos tengo una duda por que se repiten mis datos en esta consulta? ¿Se entiende? Esto implica que si tuvieses este resultado: Cita: eso no es repeticion, por cuanto en los tres registros hay un campo que es diferente a los otros dos.A B C D E F G H A B C D F F G H A B C D E F J H ¿Eso se cumple en tu caso? Por lo demas, en tu query ahora estaria relativamente bien, excepto por esa condicion "entrada.clave_t_e !='" que no estoy seguro de que cosa representa, ya que si es ese campo es PK, no podr'ia tener nunca un valor como ese, ni tampoco podria valer NULL.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Duda con consulta en mysql Cita: Me ha quedado claro, mas sin embargo como podria yo traer registros de un solo usuario con clave_t_e como podria ser esa sentencia, que solo me muestren los datos correspodientes a su clave y no me muestre todos los registros
Iniciado por gnzsoloyo Vamos por el principio: Comencemos por aclarar un detalle: EN BBDD se considera que un resultado contiene registros duplicados si Y SÓLO SI todos los campos devueltos entre dos registros cualesquiera contiene valores que se repiten entre ellos. Pero si al menos UNO de los campos o columnas contiene un valor diferente al otro registro, eso NO ES REPETICIÓN. ¿Se entiende? Esto implica que si tuvieses este resultado: eso no es repeticion, por cuanto en los tres registros hay un campo que es diferente a los otros dos. ¿Eso se cumple en tu caso? Por lo demas, en tu query ahora estaria relativamente bien, excepto por esa condicion "entrada.clave_t_e !='" que no estoy seguro de que cosa representa, ya que si es ese campo es PK, no podria tener nunca un valor como ese, ni tampoco podria valer NULL. y gracias por ejemplo de ayya arriba me ha quedado claro amigo
__________________ Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre. |
| ||||
Respuesta: Duda con consulta en mysql Cita: Eso es una duda que puedes resolver leyendo el manual básico...Si ya tienes el valor de la clave que buscas, pues simplemente lo usas:
Código MySQL:
Ver original Varios consejos: 1) Usa alias para los nombres de las tablas. Evitarás codigos confusos. 2) NO uses relaciones en el WHERE que no puedan cumplirse. Si el campo es PK y FK en la segunda tabla, es imposible que un INNER JOIN devuelva algo que no contenga esos valores. Poner una condicón del WHERE para buscar otra cosa que no sea la clave es una pérdida de tiempo. 3) SI ambos campos (PK / FK) contienen el mismo valor, no tiene sentido poner ambos campos en la salida del SELECT. Con uno sólo alcanza. 4) Si el campos de ordenamiento tendrá siempre el mismo valor, porque ese es el que se busca, ¿qué sentido tiene poner el ORDER BY? Puedo seguir, pero por el momento alcanza.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Duda con consulta en mysql Cita: Hola amigo te agradesco por brindar el apoyo te iva a contestar desde hace rato pero tube problemas con el internet gracias a tu codigo lo realice así un saludo y gracias nuevamente
Iniciado por gnzsoloyo Eso es una duda que puedes resolver leyendo el manual básico... Si ya tienes el valor de la clave que buscas, pues simplemente lo usas:
Código MySQL:
Ver original Varios consejos: 1) Usa alias para los nombres de las tablas. Evitarás codigos confusos. 2) NO uses relaciones en el WHERE que no puedan cumplirse. Si el campo es PK y FK en la segunda tabla, es imposible que un INNER JOIN devuelva algo que no contenga esos valores. Poner una condicón del WHERE para buscar otra cosa que no sea la clave es una pérdida de tiempo. 3) SI ambos campos (PK / FK) contienen el mismo valor, no tiene sentido poner ambos campos en la salida del SELECT. Con uno sólo alcanza. 4) Si el campos de ordenamiento tendrá siempre el mismo valor, porque ese es el que se busca, ¿qué sentido tiene poner el ORDER BY? Puedo seguir, pero por el momento alcanza.
Código MySQL:
Ver original y gracias por tan buenos consejos amigo
__________________ Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre. Última edición por joseanguiano; 25/10/2015 a las 18:20 Razón: a |
Etiquetas: |