Haga una consulta SQL difícil y pruebe sus habilidades de escritura de bases de datos.
Seleccione máximo (precio del hotel), mínimo (precio del hotel), recuento (precio de la habitación), * de precios del hotel
nombre del hotel = precio del hotel. hotel de unión interna en el nombre del hotel
foto del hotel = precio del hotel. hotel de unión interna en el nombre del hotel
El precio de la habitación está entre 200 y 300
. Grupo por hotel. Nombre del hotel
Descargo de responsabilidad, la oración anterior solo se cambia para que se vea mejor.
Usando el principio de consulta grupal, podemos agrupar los hoteles por nombre, de modo que podamos clasificar los hoteles por nombre y encontrar el precio más alto en cada hotel y el precio más bajo entre 200-300.
No ha sido probado, pero el principio debe ser correcto.
Se utilizan el valor máximo, el valor mínimo, el recuento, la consulta de conexión y la consulta de grupo.
Razones para utilizar consultas agrupadas:
Máximo\mínimo\recuento, etc. Es una función agregada que debe mostrarse junto con otra información, ordenada por hotel. Sólo se pueden utilizar consultas grupales.
Pero personalmente creo que el diseño de las tres tablas de esta base de datos es problemático.
En primer lugar, estas tres tablas sólo se pueden conectar por el nombre del hotel. La identificación debe ser la columna de identificación y la clave principal, de modo que las tres tablas no puedan establecer relaciones entre clave primaria y clave externa.
En segundo lugar, si no existe una relación de clave primaria y externa, ¿cómo garantizar que se agregue la información de la imagen de un hotel y que la información del hotel también tenga datos de la tabla principal, de modo que estos datos sean redundantes en el futuro.
Además, los precios de los hoteles, las fotografías y otra información que desee contar deben utilizar restricciones no nulas. De lo contrario, las estadísticas serán erróneas.
Por fin. No necesita escribir SQL en una oración, puede escribirlo en varias oraciones o puede implementarlo mediante vistas, tablas temporales, etc. Los procedimientos almacenados pueden llamar a SQL de declaraciones múltiples. Y la eficiencia es mayor que la llamada directa en una sola frase. (Sin consultas múltiples ni tablas temporales)