我从几个表中选择数据,但主要思想是产品可能有也可能没有与之相关的折扣记录,如折扣百分比或折扣金额。我正在使用左外连接(这可能不正确),并且无论记录是否存在,我都会返回相同的美元值和百分比值。
查询类似于:
SELECT Items.ItemID, Items.name, Items.price,
ItemDiscounts.percentOff, ItemDiscounts.dollarOff,
ItemAttributes.ColorName, ItemStuff.StuffID
FROM Items, ItemAttributes, ItemStuff
LEFT OUTER JOIN ItemDiscounts
ON ItemDiscounts.ItemID = ItemID
AND (
ItemDiscounts.percentOff > 0
OR ItemDiscounts.dollarOff > 0
)
WHERE Items.ItemID = ItemAttributes.ItemID
AND ItemStuff.ItemID = Items.ItemID
GROUP BY ItemStuff.StuffID
奇怪的是,在所有结果中,percentOff
返回“1”,并dollarOff
返回“0”,不管每个项目是否有它自己的关联折扣记录。对于吐口水,我改为ItemDiscounts.percentOff > 0
,ItemDiscounts.percentOff > 1
然后dollarAmount
改为全 2 和percentOff
全 0。
我对此感到有些困惑,因此将不胜感激。