Volvamos al principio:
Cita: lo que intento es sacar las imagenes que coincidan con el id de un anuncio de un usuario determinado. Mi consulta es esta:
Código MySQL:
La consulta me devuelve las imagenes que coincidan con el anuncio y el usuario, pero no en orden, es decir, me muestra las imagenes en un anuncio que no le corresponde. Lo que quiero es que me saque la imagen del anuncio en concreto y no lo hace.
EN teoria el id del anuncio y el de la imagen debe coinciden, pero no se porque mi consulta no me devuelve lo que creo que le estoy pidiendo.
Eso tiene todo el aspecto de datos sucios.
Partamos de la base que al usar tablas MyISAM, estás obligado a mantener la consistencia de los datos por programación, lo que en tu caso podría no cumplirse, y no lo detectarías. TEn en cuenta que tu tabla de imagenes tiene como condición que no se repitan los id_anuncio y el nombre de la imagen, pero nada restringe que sean datos válidos.
Para probar si hay datos inconsistentes hay que hacer una consulta:
Código SQL:
Ver originalSELECT *
FROM imagenes I LEFT JOIN anuncios A ON I.ID_ANUNCIO=A.ID
WHERE A.ID IS NULL
Si esta query devuelve
algo de la tabla anuncios, son anuncios que no se relacionan con imagenes.
Ahora bien, si esta otra devuelve datos inconsistentes, es decir, imagenes que no pertenecen realmente a los anuncios, lo que tienes son datos sucios:
Finalmente, me queda la duda de por qué estás usando esta COLLATION:
utf8_slovenian_ci, mientras en los campos tienes
utf8_spanish_ci.
¿No sería más sensato unificar la collation de la baser y las tablas a una sola?