在加入时选择使用与 id 不同的值

Iva*_*van -2 join

我有两个表,规范化:

table1
id    quality    product_id 
1     100       1
2     100       2
3     10        4
4     50        2
Run Code Online (Sandbox Code Playgroud)

table2
product_id    product    material
1             tinder     metal
2             gold       metal
3             timber     wood
4             stone      rock
Run Code Online (Sandbox Code Playgroud)

如何获得第一张桌子上的所有金属物品?我试过

select sum(quality) from table1 join table2 on table2.material = 'metal';
Run Code Online (Sandbox Code Playgroud)

但似乎不正确(720),应该是250。

Nel*_*son 5

我不确定我是否理解表格之间的关系,但如果我这样做应该有效:

SELECT 
    SUM(quality) 
FROM table1 
WHERE product_id IN (
    SELECT 
        product_id 
    FROM table2 
    WHERE material = 'metal'
    )
Run Code Online (Sandbox Code Playgroud)