Código PHP:
Ver original
gracias!
| ||||
Respuesta: Hola se pueden cruzar JOINs MYSQL Bueno, esa sintaxis tengo mis dudas que te la acepte algún DBMS... Pero la pregunta es: ¿Qué es exactamente lo que supones que una consulta así te debería devolver? Porque en definitiva tiene todo el aspecto de pretender generar productos cartesianos...
__________________ ¿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: Hola se pueden cruzar JOINs MYSQL jajaja ... que va es que estoy un poco atrapado con dos bases de datos cruzando datos para mostrar si o no... en un email. lo que quiero es simplificar la consulta, porque funciona!! pero es muy larga y a veces es como que se pierde la consulta y me saca un error. esta es la consulta:
Código PHP:
Ver original primero saco los datos del usuario de la TABLA A que los puede modificar... puede meter un presupuesto elegir una moneda (euros dolares...) ciudad pais habilidades que domina y en la TABLA B estan los anuncios que sube la gente.. presupuesto ciudad pais y habilidad que requiere. Esta consulta es para un gestor de correo en donde el usuario ve las coincidencias que tiene de todos los anuncios segun sus preferencias, y para mas inri esta todo embebido con AJAX, con lo cual lo de hacer la criba despues con if - contine; descartao porque la consulta MYSQL me puede volcar 15 resultados, y me los pagina de 5 en 5, pero si el continue que esta despues dela consulta me dice que no muestre esos primeros ciinco resultados entonces la primera pagina se veria sin resultados, un poco comico no? Lo que pasa es que funciona bien porque esta todo bien pero de vez en cuando me saca este error MYSQL y me tiene todo loco!!! for the right syntax to use near mysql_set_charset_name En fin y se me habia ocurrido que alomejor con join se podia simplificar la cosa el orden de lo que tengo que hacer es: de la prmera tabla-- consultar un valor estable en algo de la segunda que es variable. depues algo que es estable en la primera y en la segunda tabla y concluyendo algo que es variable en la primera tabla y estable en la segunda... menudo liazo no?
__________________ Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace.... |
| ||||
Respuesta: Hola se pueden cruzar JOINs MYSQL Cita: Traducción, por favor. No existe un concepto "estable" o "variable" en BBDD.de la prmera tabla-- consultar un valor estable en algo de la segunda que es variable. depues algo que es estable en la primera y en la segunda tabla y concluyendo algo que es variable en la primera tabla y estable en la segunda... ¿Te refieres a que buscas un valor en la tabla A, exista o no relación con la tabla B, y viceversa?
__________________ ¿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: Hola se pueden cruzar JOINs MYSQL ya perdona, me refiero a que el usuario dice: se cantar, bailar y leer (por ejemplo) mediante checks yo lo guardo asi ---> habilidades --> recojo los valores del check por ejemplo 1, 5, 9 , los sumo en una cadena, les doy forma y los guardo porejemplo .1..5..9. y en anuncios si que el que lo postea puede elegir de un select una habilidad por ejemplo leer y lo guardo en habilidad de anuncio como 9 bien entonces pillo la cadena .1..5..9. y despues de tratarla obtengo: 1 5 y 9 por separado, entonces en la segunda consulta le digo buscame anuncios que coincidan con habilidad 1 OR 5 OR 9 asi que digamos un anuncio tiene habilidad leer (9) pues le digo donde habilidad=1 OR habilidad=5 OR habilidad=9 a eso me refiero el valor de habilidad es unico , estable .... pero las posibilidades que provienen de la tabla uno son variables, no son unicas, depende del numero de habilidades que el usuario haya checheado...
__________________ Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace.... |
| ||||
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) |
| ||||
Respuesta: Hola se pueden cruzar JOINs MYSQL ya... si tienes toda la razon, lo de los campos multi ya se que es pecado, si yo soy diseñador web, y empiezas por aqui y sigues por alla! metes la puntita y cuando te das cuenta ya la tienes toa dentro XDDD Vamos a ver, el tema funciona, pero de vez en cuando me saca un error un petardazo de la MYSQL porque intuyo que la consulta es muy larga (que opinas tu de eso, es la que esta arriba de todo, en el primar comentario) He intentado ahora que me sacase el error para enseñarte el texto y he hecho como 500 consultas y no me ha cascado el hijoputa, seguro que lo hace cuando suba este comentario y pruebe XDDD Me gustaia mucho si me pudieses orientar, de como deberia hacerlo... ya que asi aprendo mas ... thanks! PD: si se me ha colado alguna "y" en vey de "z" la culpa lo tiene el teclado aleman XDD
__________________ Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace.... |
| ||||
Respuesta: Hola se pueden cruzar JOINs MYSQL Ey buenas de nuevo... ya he conseguido que me saliese el dichoso error!! alguien sabe a que se refiere y como solucionarlo...? You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_set_charset_name(&mysql, 'utf8')' at line 1 gracias de antemano!
__________________ Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace.... |
Etiquetas: |