-
Notifications
You must be signed in to change notification settings - Fork 1
/
queries.sql
82 lines (69 loc) · 3.23 KB
/
queries.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
USE yeticave;
INSERT INTO categories
(name, code)
VALUES ('Доски и лыжи', 'boards'),
('Крепления', 'attachment'),
('Ботинки', 'boots'),
('Одежда', 'clothing'),
('Инструменты', 'tools'),
('Разное', 'other');
INSERT INTO users
(date_create, email, name, password, contact)
VALUES ('2023-03-28', '[email protected]',
'Ivan', 'qwerty', 'г. Екатеринбург'),
('2023-03-29', '[email protected]',
'Vitya', '12345', 'г. Москва'),
('2023-03-25', '[email protected]',
'Petya', '1234567', 'г. Москва');
INSERT INTO lots
(date_create, title, description, image, price,
finish_date, step, user_id, category_id)
VALUES ('2022-03-28', '2014 Rossignol District Snowboard',
'Лучший в своем сегменте',
'img/lot-1.jpg', 10999, '2023-04-24', 500, 1, 1),
('2022-03-30', 'DC Ply Mens 2016/2017 Snowboard',
'Спортивный борд',
'img/lot-2.jpg', 15999, '2023-04-25', 1000, 1, 1),
('2022-03-30', 'Крепления Union Contact Pro 2015 года размер L/XL',
'Гарантия качества',
'img/lot-3.jpg', 8000, '2023-04-27', 300, 2, 1),
('2022-03-31', 'Ботинки для сноуборда DC Mutiny Charocal',
'Отличные боты',
'img/lot-4.jpg', 10999, '2023-04-23', 500, 3, 3),
('2022-04-01', 'Куртка для сноуборда DC Mutiny Charocal',
'Стиль и удобство',
'img/lot-5.jpg', 7500, '2023-04-23', 300, 1, 4),
('2022-04-01', 'Маска Oakley Canopy',
'Надежная защита',
'img/lot-6.jpg', 5400, '2023-04-23', 300, 1, 6);
INSERT INTO bets
(date_create, price, user_id, lot_id)
VALUES ('2022-04-06', 11499, 2, 1),
('2022-04-06', 11999, 3, 1);
# Получить все категории
SELECT name
FROM categories;
# Получить самые новые, открытые лоты. Каждый лот должен включать название, стартовую цену, ссылку на изображение, цену, название категории;
SELECT l.title, l.price, l.image, MAX(b.price), c.name
FROM lots l
JOIN categories c ON l.category_id = c.id
LEFT JOIN bets b ON l.id = b.lot_id
GROUP BY l.id, l.finish_date
ORDER BY l.finish_date DESC
LIMIT 3;
# Показать лот по его ID. Получите также название категории, к которой принадлежит лот;
SELECT l.date_create, l.title, l.image, l.price, c.name AS categorylo
FROM lots l
JOIN categories c ON l.category_id = c.id
WHERE l.id = 4;
# Обновить название лота по его идентификатору;
UPDATE lots
SET title = 'Курточка для сноуборда DC Mutiny Charocal'
WHERE id = 5;
# Получить список ставок для лота по его идентификатору с сортировкой по дате;
SELECT b.date_create, b.price, u.name, u.contact, l.title
FROM bets b
JOIN users u ON b.user_id = u.id
JOIN lots l ON b.lot_id = l.id
WHERE l.id = 1
ORDER BY b.date_create DESC;