我有两个表:
categories products
CatID | Name ProdID | CatFK | Model | Price |Name
我有一些类别的产品,比如沙发、桌子等等,所有产品都有自己的类别,由外键CatFK用categories表引用例如,我试图在SELECT查询中对沙发进行折扣,但我做不好。
select c.Name, p.Model, P.Price, p.Code
from categories c, products p
where catfk = catid
and (c.name = 'Sofa' and p.Price = p.Price * 0.8);
最后,我需要有一个4列的产品列表(桌子、沙发等(,但在价格栏中,所有沙发都必须有我之前插入的价格的80%
您需要在select
列表中使用case
表达式来获得折扣后的价格:
SELECT c.Name, p.Model, p.Code,
p.price * CASE name WHEN 'Sofa' THEN 0.8 ELSE 1 END AS price
FROM categories c, products p
WHERE catfk = catid
EDIT:
附带说明一下,隐式联接被认为是过时的,您可能应该使用显式联接:
SELECT c.Name, p.Model, p.Code,
p.price * CASE name WHEN 'Sofa' THEN 0.8 ELSE 1 END AS price
FROM categories c
JOIN products p ON catfk = catid