SELECT SQL_CALC_FOUND_ROWS e.nombre AS nombreEmpresa, e.id AS id_empresa, c.nombre AS nombre, c.id AS id, c.id_categoria, e.logo_thumbnail, e.logo, e.poblacion, e.provincia, c.edad_desde, c.edad_hasta, c.lugar_celebracion, c.prioritario, c.descripcion_es, c.descripcion_en, c.precio_rebajado, c.desde, c.id_subcategoria, c.nivel, c.lugar_celebracion, c.imagen, c.es_imagen_propia, ca.id_provincia, ca.id_poblacion, c.plazas_completas, CASE WHEN (SELECT COUNT(*) FROM banners WHERE tipo = 'curso_destacado_buscador' AND fecha_fin >1558543649 AND id_curso = c.id )>0 THEN 1 ELSE 0 END AS es_curso_destacado, ((ACOS(SIN(39.5 * PI() / 180) * SIN(ca.latitud * PI() / 180) + COS(39.5 * PI() / 180) * COS(ca.latitud * PI() / 180) * COS((3 - ca.longitud) * PI() / 180)) * 180 / PI()) * 60 * 1.8531) AS distancia, ca.id_provincia = 7 AS es_misma_provincia, (SELECT COUNT(DISTINCT precio) FROM cursos_fechas_precios WHERE id_curso = c.id AND fecha_inicio >'2019-05-22') AS precios_distintos, (SELECT MIN(precio) FROM cursos_fechas_precios WHERE id_curso = c.id AND fecha_inicio >'2019-05-22') AS precio, 1 AS contiene_termino_nombre, 1 AS contiene_termino_desc, 1 AS contiene_termino_nombreEmpresa FROM empresas e, cursos_datos ca, cursos c WHERE c.id_empresa = e.id AND c.id = ca.id_curso AND c.id_categoria IN (6) AND EXISTS (SELECT 1 FROM contratos_forzados WHERE id_categoria IN (6) AND id_empresa = c.id_empresa AND id_categoria = c.id_categoria ) AND EXISTS (SELECT 1 FROM usuarios WHERE tipo = 'empresa' AND id_empresa = c.id_empresa) AND activado = 1 AND borrador = 0 GROUP BY c.id HAVING 1 AND (distancia <= 149 OR es_misma_provincia = 1) ORDER BY es_misma_provincia DESC, es_curso_destacado DESC, contiene_termino_nombre DESC, contiene_termino_desc DESC, contiene_termino_nombreEmpresa DESC, es_misma_provincia DESC, distancia ASC, RAND(432928+432928) LIMIT 0,9