Hilo random para variar de las peticiones de ayuda: ¿cuál fue la consulta SQL más rara o retorcida que tuvisteis que depurar?
Me refiero a esas consultas heredadas de otra persona (o de vuestro propio yo de hace unos años) con subconsultas anidadas dentro de subconsultas, cincuenta JOIN sin alias claros, o un WHERE con condiciones que nadie recuerda por qué están ahí pero da miedo quitarlas por si algo se rompe en producción.
Contad la vuestra, con o sin código. Y si al final conseguisteis simplificarla sin romper nada, mejor todavía, que seguro que a alguien más le sirve el truco.
Antonia G.
La mía fue una consulta con siete subconsultas anidadas, cada una filtrando sobre el resultado de la anterior, escrita para evitar un único JOIN directo por miedo (infundado) a que fuera más lento. Al final resultaba ser, lógicamente, exactamente lo mismo que un JOIN normal entre tres tablas con un par de condiciones, solo que escrito de la forma más difícil de leer posible. La reescribí entera con JOINs explícitos y pasó de 40 líneas a 6, con el mismo resultado exacto y bastante más rápida además, porque el optimizador tenía mucho más margen para decidir el orden de acceso óptimo.
David Carrero
La mía fue un WHERE con una condición del tipo fecha >= '2019-01-01' AND fecha <= '2019-01-01', es decir, un rango de fechas que en realidad solo podía devolver resultados de un único día exacto, escrito como si fuera un rango real. Nadie en el equipo sabía por qué estaba así ni se atrevía a tocarlo «por si acaso», hasta que investigamos el historial y resultó ser un apaño temporal de hace años para un informe de un solo día muy concreto, que nunca se quitó después. Llevaba así congelado tanto tiempo que ya nadie recordaba que en realidad tenía que ser un rango de verdad, con la fecha de inicio y la de fin como parámetros.
Bruno C.