Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 26
1

Составление запроса

25.10.2019, 10:58. Показов 2203. Ответов 8
Метки php, sql (Все метки)

Author24 — интернет-сервис помощи студентам
Даны 3 таблицы,нужно сделать следующий запрос
Блюдо (КодБл, НазвБл, Категория)
Продукт (КодПрод, НазвПрод, Калорийность)
Рецепт (КодБл, КодПрод, КолПродВБл)

Извлечь коды и названия всех блюд, для которых либо вовсе не указаны входящие в него продукты, либо указан всего один продукт, причем такой, что калорийность его ниже 50 ед. Результат упорядочить по названиям блюд.

Как можно составить этот запрос без JOIN?Можно использовать только GROUP by,HAVING и т.д.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2019, 10:58
Ответы с готовыми решениями:

Составление запроса
Итак. Есть 2 таблицы: Users(ID, Login, Pass, Ref) и CartHistory(ID, Login, Amount, Product). В...

Составление запроса
Приветствую. Имеется 2 таблицы: Accounts: ID | Login | Ref | Country 1 | acc1 | 0 | RU...

Составление запроса
Есть таблица Stats с колонками id, date, sum. Нужно сделать вот как: Объединить sum, где date...

Составление запроса
Таблица Users: ID | Login | Ref ------------------ 1 | User1 | 0 2 | User2 | 1 3 | User3...

8
Эксперт MS Access
17487 / 7249 / 1651
Регистрация: 21.06.2012
Сообщений: 13,866
25.10.2019, 12:53 2
Цитата Сообщение от nevermindme Посмотреть сообщение
либо указан всего один продукт, причем такой, что калорийность его ниже 50 ед.
Калорийность 1-цы продукта или калорийность продукта в рецепте блюда (учесть КолПродВБл)?
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 26
25.10.2019, 12:57  [ТС] 3
Калорийность продукта в рецепте блюда
0
Эксперт MS Access
17487 / 7249 / 1651
Регистрация: 21.06.2012
Сообщений: 13,866
25.10.2019, 13:21 4
Без JOIN:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT КодБл, НазвБл
FROM Блюдо
WHERE КодБл NOT IN (SELECT DISTINCT КодБл FROM Рецепт)
UNION ALL 
SELECT КодБл, НазвБл FROM 
   (SELECT Блюдо.КодБл,Блюдо.НазвБл, SUM(Калорийность*КолПродВБл) AS Калорий
    FROM Блюдо, Рецепт, Продукт
    WHERE Рецепт.КодБл=Блюдо.КодБл AND Продукт.КодПрод=Рецепт.КодПрод
    GROUP BY Блюдо.КодБл, Блюдо.НазвБл
    HAVING COUNT(Рецепт.КодПрод)=1) 
WHERE Калорий<50
ORDER BY НазвБл
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 26
25.10.2019, 13:58  [ТС] 5
А можно сделать такой же запрос,используя калорийность единицы продукта?
0
Эксперт MS Access
17487 / 7249 / 1651
Регистрация: 21.06.2012
Сообщений: 13,866
25.10.2019, 14:04 6
Цитата Сообщение от nevermindme Посмотреть сообщение
А можно сделать такой же запрос,используя калорийность единицы продукта?
Вместо из SUM(Калорийность*КолПродВБл) AS Калорий напишите MAX(Калорийность) AS Калорий, например.
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 26
25.10.2019, 14:08  [ТС] 7
Ошибка в запросе, хотя вроде все делаю правильно
0
Эксперт MS Access
17487 / 7249 / 1651
Регистрация: 21.06.2012
Сообщений: 13,866
25.10.2019, 14:17 8
Цитата Сообщение от nevermindme Посмотреть сообщение
Ошибка в запросе, хотя вроде все делаю правильно
Какая?
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT КодБл, НазвБл
FROM Блюдо
WHERE КодБл NOT IN (SELECT DISTINCT КодБл FROM Рецепт)
UNION ALL SELECT КодБл, НазвБл FROM 
   (SELECT Блюдо.КодБл,Блюдо.НазвБл, MAX(Калорийность) AS Калорий
    FROM Блюдо, Рецепт, Продукт
    WHERE Рецепт.КодБл=Блюдо.КодБл AND Продукт.КодПрод=Рецепт.КодПрод
    GROUP BY Блюдо.КодБл, Блюдо.НазвБл
    HAVING COUNT(Рецепт.КодПрод)=1) 
WHERE Калорий<50
ORDER BY НазвБл
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 26
25.10.2019, 14:22  [ТС] 9
#1064. Изучите документацию на предмет корректного синтаксиса на строке 10
0
25.10.2019, 14:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2019, 14:22
Помогаю со студенческими работами здесь

Составление запроса
есть 2 таблицы special: id naimspec allspecial: id kspec namespec во allspecial хранится...

Составление SQL запроса
Имеются таблицы data и nips. Программе известен требуемый craftID (для примера возьмем 1). Нужно,...

Составление запроса. 4 таблицы
Приветствую. Помогите составить запрос. Имеется 4 таблицы table `element` - список товаров...

Составление правильного запроса
Здравствуйте, имеется таблица вида: no types 1 3 1 101 4 2 4 101 5 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru