generated from HackYourFuture-CPH/hyf-assignment-template
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathreserve_meal.sql
148 lines (108 loc) · 2.85 KB
/
reserve_meal.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
CREATE DATABASE meal_reserve_share;
USE meal_reserve_share;
CREATE TABLE Meal (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
description TEXT,
location VARCHAR(255) NOT NULL,
meal_time DATETIME,
max_reservation INT NOT NULL,
price DECIMAL(5,2),
create_date DATE
);
CREATE TABLE Reservation(
id INT PRIMARY KEY AUTO_INCREMENT,
number_of_guests INT NOT null,
meal_id INT NOT NULL,
Foreign Key (meal_id) REFERENCES Meal (id)
ON UPDATE CASCADE
ON DELETE CASCADE,
create_date DATE NOT null ,
contact_phonenumber VARCHAR(50) NOT NULL,
contact_name VARCHAR(50) NOT NULL,
contact_email VARCHAR(255) NOT NULL
);
CREATE TABLE Review (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(50) NOT NULL,
desciption TEXT,
meal_id INT,
Foreign Key (meal_id) REFERENCES Meal (id)
ON UPDATE CASCADE
ON DELETE CASCADE,
stars int,
create_date DATE NOT NULL
)
SELECT * from meal;
INSERT INTO meal(title,description,location,meal_time,max_reservation,price,create_date)
VALUES('Lasagna',' is a type of pasta','italian','2025-02-22 08:20:00',30,70,'2025-02-22');
SELECT *
from meal
WHERE id=1;
UPDATE meal
SET title= "kobideh kabab", price=80, max_reservation=60
where id=1;
DELETE from meal
where id =1;
select * from reservation;
insert into reservation(number_of_guests, meal_id, create_date, contact_phonenumber, contact_name, contact_email)
select *
from reservation
WHERE id=1
UPDATE reservation
set number_of_guests=5, create_date="2025-02-17"
WHERE id =1;
DELETE from reservation
WHERE id =1;
select * from review;
insert into review(title, desciption, meal_id, stars, create_date)
values("good deal "," A truly delightful and satisfying meal",4,3,"2025-02-17");
select *
from review
WHERE id=1;
UPDATE review
SET title="flavor", stars=5
WHERE id=1;
DELETE from review
WHERE id=1;
select * from meal
where price<90;
select *
from meal m
join reservation r
where m.id= r.meal_id and r.number_of_guests<m.max_reservation
SELECT
m.title,
m.max_reservation - COALESCE(SUM(r.number_of_guests), 0) aS number_orders_available,
m.price
FROM meal m
LEFT JOIN reservation r ON m.id = r.meal_id
GROUP BY m.id, m.title, m.max_reservation, m.price
HAVING COALESCE(SUM(r.number_of_guests), 0) < m.max_reservation;
select *
from meal
where title LIKE "%Rød grød med fløde%";
SELECT *
from meal
WHERE create_date BETWEEN "2025-02-18"and "2025-02-20";
SELECT *
from meal
LIMIT 5;
SELECT m.title, m.price,r.stars
FROM meal m
JOIN review r
on m.id= r.meal_id
where r.stars=(SELECT MAX(stars)
FROM review
WHERE meal_id = m.id);
select *
from reservation
where id=2
ORDER by create_date;
SELECT m.title,m.price, AVG(r.stars) as avrage_stars
from meal m
JOIN review r
on m.id=r.meal_id
GROUP BY m.id
ORDER BY avrage_stars ;