sql >> Base de Datos >  >> RDS >> Mysql

alcance el límite de memoria con el bucle dentro del bucle dentro del bucle

Generaría un rango de días y me uniría a su tabla de temporadas, y usaría una sola consulta para obtener el resultado deseado, por ejemplo:

DÍA COMO Fecha, '0' COMO precio DESDE (SELECCIONE 0 COMO UNION TODOS SELECCIONE 1 UNION TODOS SELECCIONE 2 UNION TODOS SELECCIONE 3 UNION TODOS SELECCIONE 4 UNION TODOS SELECCIONE 5 UNION TODOS SELECCIONE 6 UNION TODOS SELECCIONE 7 UNION TODOS SELECCIONE 8 UNION TODOS SELECCIONE 9 ) COMO CRUZ ÚNASE (SELECCIONE 0 COMO UNIÓN TODOS SELECCIONE 1 UNIÓN TODOS SELECCIONE 2 UNIÓN TODOS SELECCIONE 3 UNIÓN TODOS SELECCIONE 4 UNIÓN TODOS SELECCIONE 5 UNIÓN TODOS SELECCIONE 6 UNIÓN TODOS SELECCIONE 7 UNIÓN TODOS SELECCIONE 8 UNIÓN TODOS SELECCIONE 9) COMO b CRUZ UNIRSE (SELECCIONE 0 COMO UNA UNIÓN TODOS SELECCIONE 1 UNIÓN TODOS SELECCIONE 2 UNIÓN TODOS SELECCIONE 3 UNIÓN TODOS SELECCIONE 4 UNIÓN TODOS SELECCIONE 5 UNIÓN TODOS SELECCIONE 6 UNIÓN TODOS SELECCIONE 7 UNIÓN TODOS S ELEGIR 8 UNION TODOS SELECCIONAR 9) COMO c) a DONDE a.Fecha ENTRE '$desde' Y '$hasta' ORDENAR POR a.Fecha) fechas IZQUIERDAS ÚNASE temporadas s EN fechas.Fecha ENTRE s.inicio Y s.FIN

La complicada consulta interna evita la creación de una tabla temporal (tomada de generar días a partir del intervalo de fechas ) y funciona hasta por 1000 días, pero crear una tabla temporal estaría bien.