• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Sql

Delus3r

De profesión Chapuzas
Registrado
3 Nov 2019
Mensajes
162
Puntos
18
Buenas! no se como hacer este ejercicio de SQL

Mostrar las 3 peores recetas, con sus ingredientes y nombre de chef, en un formato listado para imprimir, con titulo y forma visual agradable.

estas son las tablas:

Create table chefs
(
Id_chef number(4) constraint chefs_idchef_pk primary key,
Nombre varchar2(30) constraint chefs_nombre_nn not null,
Estrellas number(1) constraint chefs_estrellas_nn not null constraint chefs_estrellas_ck check (estrellas between 1 and 5)


);
Create table recetas
(
Id_receta number(4) constraint recetas_idreceta_pk primary key,
Nombre varchar2(30) constraint recetas_nombre_nn not null,
Calorias number(4) constraint recetas_calorias_nn not null,
Comensales number(2) constraint recetas_comensales_nn not null,
Categoria varchar2(10) constraint recetas_categoria_nn not null
);
Create table ingredientes
(
Id_ing number(4) constraint ingredientes_iding_pk primary key,
Nombre varchar2(30) constraint ingredientes_nombre_nn not null,
Tipo varchar2(10) constraint ingredientes_tipo_nn not null
);
Create table contiene
(
Id_receta number(4),
Id_ingrediente number(4),
Cantidad number(5) constraint contiene_cantidad_nn not null,
Unidad varchar(10) constraint contiene_unidad_nn not null,


Constraint contiene_pk primary key (id_receta, id_ingrediente),
Constraint contiene_receta_fk foreign key (id_receta) references recetas(id_receta),
Constraint contiene_ingrediente_fk foreign key (id_ingrediente) references ingredientes(id_ing)
);
Create table evaluacion
(
User_id number(4),
Id_receta number(4),
Estrellas number(1) constraint evaluacion_estrellas_nn not null constraint evaluacion_estrellas_ck check (estrellas between 1 and 5),


Constraint evaluacion_pk primary key (user_id, id_receta),
Constraint evaluacion_usuario_fk foreign key (user_id) references usuarios(user_id),
Constraint evaluacion_receta_fk foreign key (id_receta) references recetas(id_receta)
);


los inserts no creo que sean necesarios que lo sepais
 
La tabla chefs le fata un identificador a la receta que crean el chef, te voy a dar una pista, no te lo resuelvo

SELECT ....
FROM contiene a, chefs b
INNER JOIN
(SELECT Id_receta
FROM evaluacion
ORDER BY Estrellas ASC
LIMIT 3) temp
ON a.Id_receta = temp.Id_receta;
 
Arriba