Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача по SQL.

- Ученик (108), на голосовании 1 год назад
Определите, кто из этих работников за всё время покупал вегетарианские пиццы. Отобразите идентификатор браслета и название пиццы.
Мой код: SELECT bracelet_id, name
FROM pizza
WHERE vegan_marker = 1
Выдает, что слишком много строк. Как еще выдать условие по-другому?
Голосование за лучший ответ
Пояснительная Бригада #345 Мыслитель (6641) 1 год назад
Ваш запрос возвращает слишком много строк, потому что он выбирает все вегетарианские пиццы из таблицы. Если вы хотите узнать, какие работники заказывали вегетарианские пиццы, вам нужно соединить таблицу пиццы с таблицей заказов и работников. Вот пример того, как это может выглядеть:

```sql
SELECT o.bracelet_id, p.name
FROM orders o
JOIN pizza p ON o.pizza _id = p.id
WHERE p.vegan_marker = 1
GROUP BY o.bracelet_id, p.name ;
```

Этот запрос вернет идентификатор браслета каждого работника и название каждой вегетарианской пиццы, которую они заказывали. Обратите внимание, что имена таблиц и столбцов могут отличаться в вашей базе данных.
Sergio 2.1 Оракул (67452) 1 год назад
Ваш запрос возвращает все вегетарианские пиццы, которые когда-либо заказывались, и поэтому может быть слишком много строк. Если вы хотите получить список уникальных работников (идентификаторов браслетов), которые заказывали вегетарианскую пиццу, вы можете использовать ключевое слово DISTINCT. Вот как это может выглядеть:
 SELECT DISTINCT bracelet_id 
FROM pizza
WHERE vegan_marker = 1
Этот запрос вернет список уникальных идентификаторов браслетов работников, которые заказывали вегетарианскую пиццу.

Если вы хотите отобразить название каждой уникальной вегетарианской пиццы, которую заказывал каждый работник, вы можете добавить name в ваш SELECT-запрос:
 SELECT DISTINCT bracelet_id, name 
FROM pizza
WHERE vegan_marker = 1
Обратите внимание, что этот запрос вернет каждую уникальную комбинацию bracelet_id и name, так что если один и тот же работник заказывал одну и ту же вегетарианскую пиццу несколько раз, она появится только один раз в результатах. Если вы хотите видеть каждый отдельный заказ, вам нужно будет добавить другие столбцы в ваш запрос SELECT, которые помогут отличить эти заказы друг от друга (например, дата или время заказа).
CausonQ Мудрец (13356) 1 год назад
Это задание продолжение предыдущего:
 SELECT bracelet_id, name 
FROM pizza
WHERE bracelet_id IN (145738, 145759, 145773, 145807, 145815, 145821, 145873, 145880)
AND vegan_marker=1
Влад Петров Ученик (105) 9 месяцев назад
В конце добавить ID из предыдущего задания
Monsystem Ученик (116) 5 месяцев назад
SELECT name,
bracelet_id
FROM pizza
WHERE bracelet_id IN(145738, 145759, 145773, 145807, 145815, 145821, 145873, 145880)
AND vegan_marker = 1;
Похожие вопросы