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` IN (3, 4, 5, 16, 17, 18, 19, 22, 23, 24, 7, 34, 35, 36, 37, 38, 39, 8, 94, 95, 96, 93, 97, 9, 29, 30, 31, 32, 33, 146, 99, 134, 135, 147, 148, 108, 149, 113, 115, 125, 126, 136, 137, 101, 123, 102, 119, 110, 116, 100, 118, 103, 124, 106, 129, 130, 191, 111, 128, 104, 150, 151, 26, 20, 25, 15, 6, 92, 156, 181, 213, 184, 186, 187, 194, 98, 223, 224, 11, 143, 14, 80, 70, 85, 71, 89, 72, 83, 73, 86, 74, 87, 75, 90, 76, 81, 77, 84, 78, 79, 82, 91, 88, 138, 179, 180, 182, 207, 237, 209, 140, 141, 142, 155, 183, 188, 189, 208, 210, 214, 215, 216, 236, 235, 27, 40, 163, 159, 53, 28, 54, 177, 239, 46, 42, 220, 43, 62, 56, 55, 45, 157, 161, 162, 41, 175, 166, 171, 49, 176, 52, 178, 172, 44, 173, 48, 174, 47, 169, 50, 170, 51, 63, 240, 12, 13, 68, 59, 61, 65, 66, 60, 64, 58, 57, 198, 67, 69, 190, 197, 218, 139, 192, 193, 205, 217, 152, 153, 154, 158, 228, 231, 160, 185, 195, 196, 199, 206, 219, 221, 225, 226, 227, 241, 200, 201, 211, 212, 222, 229, 230, 232, 233, 234, 242, 243)) OR (`t`.`zona` IN (3, 4, 5, 16, 17, 18, 19, 22, 23, 24, 7, 34, 35, 36, 37, 38, 39, 8, 94, 95, 96, 93, 97, 9, 29, 30, 31, 32, 33, 146, 99, 134, 135, 147, 148, 108, 149, 113, 115, 125, 126, 136, 137, 101, 123, 102, 119, 110, 116, 100, 118, 103, 124, 106, 129, 130, 191, 111, 128, 104, 150, 151, 26, 20, 25, 15, 6, 92, 156, 181, 213, 184, 186, 187, 194, 98, 223, 224, 11, 143, 14, 80, 70, 85, 71, 89, 72, 83, 73, 86, 74, 87, 75, 90, 76, 81, 77, 84, 78, 79, 82, 91, 88, 138, 179, 180, 182, 207, 237, 209, 140, 141, 142, 155, 183, 188, 189, 208, 210, 214, 215, 216, 236, 235, 27, 40, 163, 159, 53, 28, 54, 177, 239, 46, 42, 220, 43, 62, 56, 55, 45, 157, 161, 162, 41, 175, 166, 171, 49, 176, 52, 178, 172, 44, 173, 48, 174, 47, 169, 50, 170, 51, 63, 240, 12, 13, 68, 59, 61, 65, 66, 60, 64, 58, 57, 198, 67, 69, 190, 197, 218, 139, 192, 193, 205, 217, 152, 153, 154, 158, 228, 231, 160, 185, 195, 196, 199, 206, 219, 221, 225, 226, 227, 241, 200, 201, 211, 212, 222, 229, 230, 232, 233, 234, 242, 243)) OR (`t`.`cercaDePlaya` IN (3, 4, 5, 16, 17, 18, 19, 22, 23, 24, 7, 34, 35, 36, 37, 38, 39, 8, 94, 95, 96, 93, 97, 9, 29, 30, 31, 32, 33, 146, 99, 134, 135, 147, 148, 108, 149, 113, 115, 125, 126, 136, 137, 101, 123, 102, 119, 110, 116, 100, 118, 103, 124, 106, 129, 130, 191, 111, 128, 104, 150, 151, 26, 20, 25, 15, 6, 92, 156, 181, 213, 184, 186, 187, 194, 98, 223, 224, 11, 143, 14, 80, 70, 85, 71, 89, 72, 83, 73, 86, 74, 87, 75, 90, 76, 81, 77, 84, 78, 79, 82, 91, 88, 138, 179, 180, 182, 207, 237, 209, 140, 141, 142, 155, 183, 188, 189, 208, 210, 214, 215, 216, 236, 235, 27, 40, 163, 159, 53, 28, 54, 177, 239, 46, 42, 220, 43, 62, 56, 55, 45, 157, 161, 162, 41, 175, 166, 171, 49, 176, 52, 178, 172, 44, 173, 48, 174, 47, 169, 50, 170, 51, 63, 240, 12, 13, 68, 59, 61, 65, 66, 60, 64, 58, 57, 198, 67, 69, 190, 197, 218, 139, 192, 193, 205, 217, 152, 153, 154, 158, 228, 231, 160, 185, 195, 196, 199, 206, 219, 221, 225, 226, 227, 241, 200, 201, 211, 212, 222, 229, 230, 232, 233, 234, 242, 243))) 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(202611989)