У меня есть таблица PRODUCTS
, которая содержит записи о продуктах или подпрограммах. Субпродукты обозначаются позицией в колонке HIGHERCATALOGID
, тогда как для изделий столбец HIGHERCATALOGID
имеет значение NULL. Я пытаюсь написать запрос, который выводит имя продукта, если каталог указывает на запись продукта или имя родительского продукта, если каталог указывает на подпродукт. Вот что я пытался сделать:MySQL SELECT statement внутри CASE
SELECT p.catalogid, p.highercatalogid, oi.orderid
CASE
WHEN highercatalogid is null then cname\
ELSE
SELECT cname from products p1 where p.highercatalogid=p1.catalogid
END as name
FROM products p, oitems oi
WHERE p.catalogid=oi.catalogid
Однако, это приводит к ошибке.
Код ошибки: 1064. У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «случае, когда highercatalogid является нулевым, тогда CNAME еще выберите CNAME из продуктов р» в строке 2
Что такое правильный способ сделать это?
Спасибо! Я не был знаком с оператором COALESCE, и это именно то, что доктор заказал. – user3358413
@ user3358413 Если это ответит на ваш вопрос, лучше всего, если вы примете ответ, нажав на галочку в верхней левой части ответа - спасибо! –