31/08/2012, 14:28
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: Hola se pueden cruzar JOINs MYSQL Pues, mira, la verdad no sé por dónde empezar...
Lo que tienes es un serio problema porque tu estructura de datos contiene errores catastróficos para el desarrollo de consultas.
Vamos a lo básico: los campos multivaluados como el que propones están total y absolutamente prohibidos en el modelo de entidad-relación, que es el fundamento de las bases de datos. No se crean, no se usan ni sirven para nada más que darte dolores de cabeza... como el que ahora tienes.
Si tienes un atributo relacionado con una entidad (persona, digamos), tal que pueda tener N valores distintos, lo que tienes es una relación 1:N entre esa persona y una entidad conceptual (habilidad). Pero si esa entidad conceptual o real, puede estar relacionado con la primera entidad en una cardinalidad 1:N (cada habilidad puede ser asignada a diferentes personas), lo que en realidad tienes es una relación de muchos muchos (N:N) entre la primera entidad y la segunda, y para poder administrarla el modelo establece que es obligatorio crear una tercera entidad, relacional, donde cada par de IDs (uno de cada entidad) sólo pueda aparecer relacionado con el otro una única vez.
Lo que has hecho es "solucionar" como programador algo que ya tiene reglas estrictas en las bases de datos, y terminaste con un serio problema de consulta.
Lo más probable es que o no conozcas los fundamentos de las bases de datos, o bien supusiste que podías "resolverlo" de otra manera más "fácil"...
Lamento decirte que para que el sistema te funcione bien, tendrás que replantear el modelo completo.
Si quieres, te ayudamos a orientarte, pero desde lo que describes, no existe forma de escribir de una forma razonable una consulta ni optima, ni eficiente.
Mi consejo es que volvamos atrás y veamos cómo debe hacerse. Luego verás que las consultas se vuelven enormemente simples al modelar correctamente la base de datos.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |