Código MySQL:
Ver original
por lo cual me devuelve siempre:
intente utilizar el DISTINCTROW y el DISTINCT. pero sucede lo mismo... lo duplica como diez veces o mas a cada uno...
la tabla de los tags es asi
| ||||
Resultados duplicados en MySQL Mi consulta es la siguiente:
Código MySQL:
Ver original por lo cual me devuelve siempre: intente utilizar el DISTINCTROW y el DISTINCT. pero sucede lo mismo... lo duplica como diez veces o mas a cada uno... la tabla de los tags es asi Última edición por wowmatu; 30/05/2013 a las 18:32 |
| |||
Respuesta: Resultados duplicados en MySQL Hola wowmatu: Tengo problemas para ver las imágenes que posteaste, pero de entrada lo que observo es que tienes un grave, pero grave problema. En tu sección WHERE NO ESTÁS COLOCANDO NINGUNA RELACIÓN ENTRE TUS TABLAS por lo tanto se está realizando un PRODUCTO CARTESIANO. Observa este ejemplo:
Código MySQL:
Ver original Lo que tú estás haciendo es algo como esto:
Código MySQL:
Ver original Es decir, en el WHERE pones una condición, de que el id = 1, pero NO ESPECIFICAS COMO ESTÁN RELACIONADAS LAS DOS TABLAS... deberías hacer algo como esto:
Código MySQL:
Ver original Observa que en la sección ON especifico la relación que existe entre los campos, es decir, todos los campos que son comunes en ambas tablas. Como comentario adicional, no hagas las uniones en el FROM-WHERE, en lugar de hacer esto:
Código:
Has esto... FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo ...
Código:
Si tienes dudas de cómo funciona el JOIN dale un vistazo a esta liga:... FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo ... http://es.wikipedia.org/wiki/Join Saludos Leo. |
| ||||
Respuesta: Resultados duplicados en MySQL Cita: me repite la misma noticia dependiendo cuantos tags contiene esa noticia...
Iniciado por leonardo_josue Hola wowmatu: Tengo problemas para ver las imágenes que posteaste, pero de entrada lo que observo es que tienes un grave, pero grave problema. En tu sección WHERE NO ESTÁS COLOCANDO NINGUNA RELACIÓN ENTRE TUS TABLAS por lo tanto se está realizando un PRODUCTO CARTESIANO. Observa este ejemplo:
Código MySQL:
Ver original Lo que tú estás haciendo es algo como esto:
Código MySQL:
Ver original Es decir, en el WHERE pones una condición, de que el id = 1, pero NO ESPECIFICAS COMO ESTÁN RELACIONADAS LAS DOS TABLAS... deberías hacer algo como esto:
Código MySQL:
Ver original Observa que en la sección ON especifico la relación que existe entre los campos, es decir, todos los campos que son comunes en ambas tablas. Como comentario adicional, no hagas las uniones en el FROM-WHERE, en lugar de hacer esto:
Código:
Has esto... FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo ...
Código:
Si tienes dudas de cómo funciona el JOIN dale un vistazo a esta liga:... FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo ... [url]http://es.wikipedia.org/wiki/Join[/url] Saludos Leo. |
| ||||
Respuesta: Resultados duplicados en MySQL Cita: Es que eso, en Bases de Datos, no se considera repetición. Un registro se repite si y sólo si todos los valores de todos los campos son iguales, y en tu caso tienes un campo de tags que cambia de registro a registro. DISTINCTROW, incluso, no tiene efecto precisamente por eso: diferencia registros de la tabla resultado diferentes, y en este caso siempre hay diferencias. A lo máximo que puedes aspirar es que todos los tags se agrupen por cada post, para lo cual tienes que considerar dos cosas al menos: 1) Si existen o no posts sin tags (cosa que no has aclarado debidamente), 2) El tag_id se vuelve irrelvante en ese contexto, como tampoco necesitas traer de nuevo el post_id. La cosa andaría por acá:
Código MySQL:
Ver original
__________________ ¿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: |