Bueno el otro dia descrubir el maravilloso mundo de las subconsultas, pero ahora me han traido un quebradero que no alcanzo a comprender, haber si los que ya la habeis experimentado, me podeis orientar un poco.
La consulta es esta (sacada desde un echo para no tener que incluir toda la programacion, ya que la variable es para un buscador, y tiene muchos campos opcionales)
Código PHP:
SELECT inmuebles.modo_inmueble, inmuebles.superficie_construida_inmueble, inmuebles.dormitorios_inmueble, inmuebles.post_precio, inmuebles.id_inmueble, inmuebles.nombre_inmueble, inmuebles.descripcion_inmueble,
(select inmuebles_fotos.foto_inmueble from inmuebles_fotos where inmuebles_fotos.id_inmueble=inmuebles.id_inmueble ORDER BY inmuebles_fotos.foto_principal ASC LIMIT 0,1) as foto_inmueble,
inmuebles_subtipos.nombre_inmueble_subtipo1, paises.nombre_pais, provincias.nombre_provincia, areas.nombre_area FROM inmuebles INNER JOIN inmuebles_subtipos ON (inmuebles.id_inmueble_subtipo = inmuebles_subtipos.id_inmueble_subtipo) INNER JOIN paises ON (inmuebles.id_pais = paises.id_pais) INNER JOIN provincias ON (inmuebles.id_provincia = provincias.id_provincia) INNER JOIN areas ON (inmuebles.id_area = areas.id_area) WHERE inmuebles.estado_inmueble = 'visible' AND inmuebles.validacion = 'si'
ORDER BY foto_inmueble DESC, inmuebles.post_precio ASC
intento algo tan simple como ordenar por fotos (los inmuebles con fotos primero, y los que no tienen despues) y precio (los mas baratos primero y los mas caros despues).
Hasta antes de integrar la subconsulta (que me ayuda a sacar la foto principal de cada innmueble) la respuesta venia ordenada, como queria. pero despues de añadirla no lo hace, ordenas por fotos, eso si, pero no por precio, aunque me di cuenta tras las pruebas, de que los inmuebles que no tienen fotos, si se ordenan por precio.
Por probar probe tambien a intentar ordenarlo en la subconsulta, pero el resultado seguia siendo el mismo.
Despues de mucho googlear, toda la informacion que encontre, era lo que ya sabia y lo que deberia ser (al especificar dos campos, deberia ordenarlo sin mas), tambien encontre algo referente al uso de comillas, para las alias, pero como no uso las comillas, tampoco deberia ser ese problema. (segun entendi, no se puede usar comillas en el orden by, pues si no no reconoces el alias como tal).
¿Alguien se le ocurre, como podria ordenarlo?¿hay que especificar de alguna forma especial que el campo a ordenar, es un alias?
Gracias de antemano.