我有一個PRODUCTS
表,其中包含產品記錄或子產品記錄。子產品通過在HIGHERCATALOGID
列中具有條目來指示,而對於產品HIGHERCATALOGID
列爲NULL。我試圖編寫一個查詢,如果catalogid指向產品記錄,則輸出產品名稱,如果catalogid指向子產品,則輸出父產品的名稱。這是我試圖做的:CASE中的MySQL SELECT語句
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是空的商品P然後CNAME別的選擇CNAME。」在第2行
什麼是這樣做的正確方法正確的語法手冊?
謝謝!我不熟悉COALESCE運營商,這正是醫生訂購的。 – user3358413
@ user3358413如果這回答你的問題,最好是如果你接受答案,點擊答案左上角的刻度標記 - 謝謝! –