SELECT `t`.*, `j`.`_tarifa` AS `_tarifa`, `j`.`tarifa_orden` AS `tarifa_orden`, IFNULL(j.childs ,"[]") AS `childs` FROM `publicaciones` `t` LEFT JOIN `tipo_publicaciones` ON `t`.`IDtipoPublicacion` = `tipo_publicaciones`.`ID` LEFT JOIN `propiedades` `propiedad` ON `t`.`ID` = `propiedad`.`IDpublicacion` LEFT JOIN `localidades` `localidad` ON `t`.`IDlocalidad` = `localidad`.`ID` LEFT JOIN `localidades` `pubZona` ON `t`.`zona` = `pubZona`.`ID` LEFT JOIN `clasificacion` ON `t`.`IDclasificacion` = `clasificacion`.`ID` LEFT JOIN `contactos` ON `t`.`IDcontacto` = `contactos`.`ID` LEFT JOIN `gallery` ON `t`.`IDalbum` = `gallery`.`id` LEFT JOIN `gallery_photo` ON `gallery`.`IDportraitPhoto` = `gallery_photo`.`id` INNER JOIN (SELECT DISTINCT IFNULL(`par`.`ID`,`t`.ID) AS `ID`, MAX(IF(propiedad.fecha_ua_disponibilidad IS NULL, 0, CASE WHEN datediff(NOW(),propiedad.fecha_ua_disponibilidad)<=15 THEN 5 WHEN datediff(NOW(),propiedad.fecha_ua_disponibilidad)<=30 THEN 4 WHEN datediff(NOW(),propiedad.fecha_ua_disponibilidad)<=90 THEN 3 WHEN datediff(NOW(),propiedad.fecha_ua_disponibilidad)<=180 THEN 2 WHEN datediff(NOW(),propiedad.fecha_ua_disponibilidad)<=360 THEN 1 WHEN datediff(NOW(),propiedad.fecha_ua_disponibilidad)>360 THEN 0 END) + IF(propiedad.calendario="SI",5,0) + -- IF(propiedad.detalleTarifas="SI",5,0) + IF(propiedad.reservaOnline="SI",5,0)) AS `orden_prioridad`, CONCAT("[",GROUP_CONCAT(IF(t.IDpublicacionpadre!=0,CONCAT("{\"id\":",`t`.id,", \"tarifa\":",ROUND(IFNULL(po.tarifa_dia,0)/poMonedas.tasa_cambio),"}"), NULL) ORDER BY `t`.titulo ASC SEPARATOR ', '),"]") AS `childs`, MIN(ROUND(IFNULL(po.tarifa_dia,0)/poMonedas.tasa_cambio)) AS `_tarifa`, MAX(IF(po.tarifa_dia IS NULL OR po.tarifa_dia=0,0,5)) AS `tarifa_orden` FROM `publicaciones` `t` LEFT OUTER JOIN `publicaciones_operaciones` `po` ON po.IDpublicacion= t.ID AND po.IDoperacion = 1 LEFT JOIN `monedas` `poMonedas` ON po.moneda = poMonedas.codigo LEFT JOIN `contactos` `contacto` ON contacto.ID=t.IDcontacto LEFT JOIN `clasificacion` ON clasificacion.ID=t.IDclasificacion LEFT JOIN `localidades` `localidad` ON localidad.ID=t.IDlocalidad LEFT JOIN `propiedades` `propiedad` ON propiedad.IDpublicacion=t.ID LEFT OUTER JOIN `publicaciones` `par` ON t.IDpublicacionpadre = par.ID WHERE (t.ID = (SELECT IDpublicacion FROM publicaciones_grupos pg WHERE pg.IDpublicacion=t.ID AND pg.IDgrupo=1)) AND ((`t`.`IDtipoPublicacion`=1) AND (`t`.`estadoPublicacion`='SI')) AND ((`t`.`IDlocalidad`=18) OR (`t`.`zona`=18) OR (`t`.`cercaDePlaya`=18)) AND (t.ID in (SELECT IDpublicacion FROM publicaciones_operaciones po WHERE po.IDpublicacion=t.ID AND po.IDoperacion = 1 AND po.estado="SI")) AND (par.ID is NULL OR par.estadoPublicacion="SI") GROUP BY IFNULL(`par`.`ID`,`t`.ID)) `j` ON j.id =t.ID ORDER BY t.tipo_suscripcion DESC, (YEAR(CURDATE())-IF(gallery.fecha_promedio_fotos,YEAR( gallery.fecha_promedio_fotos),0)) DIV 10 ASC, RAND(1873720394)