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

Ошибка при выполнении запроса Select, "Операнд должен содержать 1 колонок".

Kidsld FDefr Ученик (118), на голосовании 4 года назад
Как можно по быстрому поправить и в чем дело?

Select x.id_dish, x.dish_name
from dish x
where x.dish_name not in
(select y.id_dish
from recipe y)
or x.id_dish in
(select z.id_dish,
count(z.id_product) as 'z.products_in_dish'
from recipe z
Group By x.id_dish
Having count(x.id_dish)=1
and 'z.id_product' in
(select a.id_product
from product a
where
a.product_calories<50))
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (445813) 4 года назад
Сдается мне, если это счастье переписать попроще, всем станет легче... В чем задача-то?
Kidsld FDefrУченик (118) 4 года назад
Извлечь коды и названия всех блюд, для которых либо вовсе не указаны входящие в него продукты, либо указан всего один продукт, причем такой, что калорийность его ниже 50 ед. Результат упорядочить по названиям блюд.

Задание осложняется тем, что нужно писать запрос именно так, не используя конструкции UNION и JOIN.
Jurijus Zaksas Искусственный Интеллект (445813) А ничего, что оптимизатор скорее всего наплюет на твой неявный JOIN и заменит его явным? В чем смысел извращения? Но если очень приспичило - проверь скобки и исполняй по частям. Т. е. закомментируй все, потом добавь немнго, потом еще...
クマのプーさん Мудрец (15495) 4 года назад
запрос внутри in отдаёт две колонки. а перед in только одна
x.id_dish in (select z.id_dish, count(z.id_product) ...
неувязочка
Похожие вопросы