我想根据其他表中的相应值更新一个表中的值。假设您要更新名称在表Manufacturers
中的一个特定制造商提供的作品的价格,其中Pieces
表格仅包含制造商的ID。
我已经看到了MySQL here和MS SQL Server here的几种解决方案,但它们似乎都不适用于SQLite。
有什么建议吗?
答案 0 :(得分:2)
你尝试过这样的事吗?
UPDATE Pieces
SET price = 42
WHERE manufacturer_id = (
SELECT id
FROM Manufacturers
WHERE Name = 'FooBar Inc.'
)
答案 1 :(得分:0)
对于SQLite,UPDATE语句中没有JOIN功能。你唯一的选择是制作相关的子查询:
UPDATE pieces
SET price = (SELECT SUM(price)
FROM manufacturers
WHERE pieces.manufacture_id = manufacturers.id)
WHERE manufacture_id in (SELECT id
FROM manufacturers
WHERE name IN ('boo', 'foo'));
效率不高,但您可以根据自己的需要进行调整。