如果我没有使用正确的术语,我深表歉意。
无论如何,我有两张桌子。一个是带有 id 和 value 的 item 表。第二个是带有指向项目表和修饰符的链接的 mod 表。任何给定项目可能有多个修饰符。如果 item.value 为 100 并且两个修饰符与该项目相关联(例如 mod.modifier 值为 1.25 和 1.1)我想获得值 137.5 (100 *1.25 *1.1) 而不是 135 (100 *(1.25+ 1.1))。
这是我到目前为止编写的测试代码:
DROP TABLE IF EXISTS item;
DROP TABLE IF EXISTS mod;
CREATE TABLE item (
item_id INTEGER PRIMARY KEY,
value DECIMAL
);
CREATE TABLE mod (
mod_id INTEGER PRIMARY KEY,
item_id INTEGER,
modifier DECIMAL
);
INSERT INTO item (item_id, value)
VALUES (0, 100);
INSERT INTO item (item_id, value)
VALUES (1, 10);
INSERT INTO item (item_id, value)
VALUES (2, 1000);
INSERT INTO mod (mod_id, item_id, modifier)
VALUES (0, 0, 0.25);
INSERT INTO mod (mod_id, item_id, modifier)
VALUES (1, 0, 0.10);
INSERT INTO mod (mod_id, item_id, modifier)
VALUES (2, 2, 0.10);
INSERT INTO mod (mod_id, item_id, modifier)
VALUES (3, 2, 0.05);
INSERT INTO mod (mod_id, item_id, modifier)
VALUES (4, 2, 0.15);
SELECT item.item_id ID, item.value Value, mod.modifier Mod
FROM item
LEFT JOIN mod
ON item.item_id = mod.item_id;
我希望得到如下结果:
item.item_id item.value Result
0 100 137.5
1 10 10
2 1000 1328.25