You need to use "GROUP BY" to show the sum of amount per product, "GROUP BY" returns unique column combination, Group BY is usually used with aggregates like sum() to display the total per category or max() to display the topmost value per category
Instead of selecting all columns If you only need to know the total amount per product per vendor
SELECT i.product,i.vendor,sum(v.amount)
FROM `inventory_items` i,inventory_transactions v
WHERE v.itemId=i.id
GROUP BY product,vendor;
"Group by product" only if you need the total amount per product regardless of vendor
Yes there is a way to auto update the sum amount, by using what we call TRIGGERS, go HERE to know more about triggers
What you are looking for is the "after insert" trigger, in the after insert trigger use a statement like
Update Inventory_items as i
set i.total_amount = (
Select sum(v.amount) from inventory_transaction v
where v.inventoryID = i.id
);
which updates the total amount of all inventory items per inventory item, the above query could be more efficient but I'll leave it that to you :)