【发布时间】:2014-03-30 05:24:11
【问题描述】:
我有一个PRODUCTS 表,其中包含产品记录或子产品记录。子产品通过在 HIGHERCATALOGID 列中有一个条目来表示,而对于产品,HIGHERCATALOGID 列是 NULL。我正在尝试编写一个查询,如果 catalogid 指向产品记录,则输出产品名称;如果 catalogid 指向子产品,则输出父产品的名称。这是我尝试做的:
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 服务器版本相对应的手册,以在第 2 行的“case WHEN highcatalogid 为 null 然后 cname else select cname from products p”附近使用正确的语法
这样做的正确方法是什么?
【问题讨论】: