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

ME repite 3 veces mis registros

Estas en el tema de ME repite 3 veces mis registros en el foro de Mysql en Foros del Web. Hola a todos tengo una consulta que estoy realizando pero me da sale 3 veces la misma respuesta Les envio mi consulta Cita: SELECT clientes.nombres, ...
  #1 (permalink)  
Antiguo 31/01/2006, 18:19
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Exclamación ME repite 3 veces mis registros

Hola a todos tengo una consulta que estoy realizando pero me da sale 3 veces la misma respuesta

Les envio mi consulta
Cita:
SELECT clientes.nombres, opertation.deliveryday, opertation.nrodoc, opertation.status, opertation.respons, opertation.view, opertation.dateprocess, opertation.idprod FROM clientes, opertation WHERE nrodoc='103'


GRacias
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura

Última edición por helthon; 31/01/2006 a las 22:01
  #2 (permalink)  
Antiguo 31/01/2006, 22:55
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
WHERE nrodoc='103'... a qué tabla pertenece este campo??? a clientes o opertation???
donde está la liga que una clientes con opertation???
o sea, suponiendo que nrodoc pertenesca a opertation algo como esto:
WHERE opertation.nrodoc = '103' and cliente.campo = opertation.campo.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 31/01/2006, 23:15
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Hola BrujoNic
Pues nrodoc pertenece a la tabla opertation
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #4 (permalink)  
Antiguo 01/02/2006, 05:03
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Estas haciendo una concatenación de tablas deberías indicar en el where porque campos están concatenados o en su defecto (y mejor opción) utilizar inner joins. Cuando hagas esto y siempre y cuando la relación sea correcta te mostrará bien la consulta.

Un saludo.
  #5 (permalink)  
Antiguo 01/02/2006, 08:27
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Es que el problema es que si no usas algun join entre las tablas que haces las consultas estas haciendo un producto cartesiano entre las tablas, lo mejor seria que hagas un inner join entre tus tablas asi no tendras datos repetidos.
__________________
"El Conocimiento es de todos, no solo de algunos"
  #6 (permalink)  
Antiguo 01/02/2006, 11:27
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Gracias ahora si sale correcto todo
`Probe con :
WHERE opertation.nrodoc = '103' and cliente.campo = opertation.campo.
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #7 (permalink)  
Antiguo 01/02/2006, 11:36
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Haznos caso y hazlo con inner joins puesto que en rendimiento es muy muy notablemente superior.
  #8 (permalink)  
Antiguo 01/02/2006, 11:43
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
TRate de realizarlo con Iner join pero me dijeron quie para este tipo de consultas solo se necesitaba jalar los campos y mostrarlo, cosa que me dieron un ejemplo y realice mi consulta y no habia tenido problemas.

Ahora mi problema que habia posteado es sobre una consulta que estoy realizando, que lo llamo de un formulario de 3 variables, nombre, numero y fechas.

Cita:
"SELECT clientes.nombres, opertation.deliveryday, opertation.nrodoc, opertation.status, opertation.respons, opertation.view, opertation.dateprocess
FROM clientes, opertation
WHERE clientes.idclie=opertation.idclie
OR opertation.idclie = '$customer'
AND nrodoc LIKE '$nrodoc%'
OR DATE_FORMAT(deliveryday ,'%Y-%m-%d') >= '$deliveryday'
and DATE_FORMAT(deliveryday ,'%Y-%m-%d') <= '$dateprocess'
"
Pero = me sale error
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #9 (permalink)  
Antiguo 01/02/2006, 11:46
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Cita:
TRate de realizarlo con Iner join pero me dijeron quie para este tipo de consultas solo se necesitaba jalar los campos y mostrarlo, cosa que me dieron un ejemplo y realice mi consulta y no habia tenido problemas.
El único problema que tendrás es que a la larga el rendimiento te bajará considerablemente (cuando hablemos de tablas con miles de registros).

Cuando te de un error, indica cual.
Cuando trates consultas con ANDs y ORs agrupa en parentesis para que su ejecución sea correcta (y su lectura más legible).
  #10 (permalink)  
Antiguo 01/02/2006, 11:51
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
En mi caso seria asi:

Cita:
SELECT clientes.nombres, opertation.deliveryday, opertation.nrodoc, opertation.status, opertation.respons, opertation.view, opertation.dateprocess
FROM opertation INNER JOIN clientes ON clientes.idclie=opertation.idclie
WHERE .......
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #11 (permalink)  
Antiguo 01/02/2006, 11:52
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Tu consulta optimizada sería asi:
Cita:
"SELECT clientes.nombres, opertation.deliveryday, opertation.nrodoc, opertation.status, opertation.respons, opertation.view, opertation.dateprocess
FROM clientes inner join operation on clientes.idclie=opertation.idclie
Where opertation.idclie =$customer
AND nrodoc LIKE '$nrodoc%'
OR DATE_FORMAT(deliveryday ,'%Y-%m-%d') >= '$deliveryday'
and DATE_FORMAT(deliveryday ,'%Y-%m-%d') <= '$dateprocess'
"
Esto no te digo que funcione, si no que es más optimo si el idclie es númerico
  #12 (permalink)  
Antiguo 01/02/2006, 12:04
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
GRacias

Gracias Jose_minglein2

Si esta funcionando, ahora cambiare todas mis consultas que tenia de la manera de como lo has planteado con el inner join,

En caso que tenga alguna duda por favor recurire a uds para que me den una mano.

Gracias
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #13 (permalink)  
Antiguo 02/02/2006, 03:24
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
ok, por aqui andaremos.

Un saludo.
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 17:09.