SELECT SUM(t.OptLevel) + SUM(o.ReqLevel1) + SUM(b.nOptValue) FROM _Inventory AS i
LEFT JOIN _Items AS t ON t.ID64 = i.ItemID
LEFT JOIN _RefObjCommon AS o ON o.ID = t.RefItemID
LEFT OUTER JOIN _BindingOptionWithItem AS b ON b.nItemDBID = i.ItemID
WHERE i.CharID = 7843 AND i.Slot BETWEEN 0 AND 12 AND i.ItemID != 0
我在处理这个查询时遇到了问题,我对加入的经验并不如我所愿。
t.OptLevel
总是 >= 0 从_Items
并且该行总是在那里
o.ReqLevel1
始终在 1 到 101 之间,_RefObjCommon
并且该行始终存在
但是,b.nOptValue
from_BindingOptionWithItem
是来自并不总是存在的行的 NULL、1 或 2...当b.nOptValue
= 1 或 2 出现在 12 行结果之一( i.Slot BETWEEN 0 AND 12 )中时,脚本运行完美:我得到一个总和,但如果b.nOptValue
在所有 12 行结果中返回 NULL,则整个查询的总和返回 NULL。
我知道有一个简单的解决方案,但我找不到。