gpt4 book ai didi

mysql - 根据 TABLE2 上的伴随行更新 TABLE1

转载 作者:行者123 更新时间:2023-11-29 09:33:43 25 4
gpt4 key购买 nike

我有一个表格,记录了用户使用产品的时间(表 1)。由于历史问题,表 1 中的时间数据并不总是最新的,并且可能太低。我想使用存储在另一个表 (TABLE2) 中的值更新 TABLE1,但前提是 TABLE2 中记录的相关用户和相关产品的时间量大于 TABLE1 中记录的时间量。

表1

UserID | Product | MinutesUsed
1 | 1000 | 30
1 | 2000 | 50
1 | 3000 | 10
2 | 1000 | 20
2 | 4000 | 30
3 | 3000 | 60

表2

UserID | Product | MinutesUsed
1 | 1000 | 70
1 | 2000 | 50
1 | 3000 | 10
2 | 1000 | 20
2 | 4000 | 30
3 | 3000 | 90

我想要的 UPDATE 查询将更新 TABLE1,以便为所有用户存储的数据根据​​其在 TABLE2 中的伴随值进行更改,并遵守上述条件:

表1

UserID | Product | MinutesUsed
1 | 1000 | 30->70
1 | 2000 | 50
1 | 3000 | 10
2 | 1000 | 20
2 | 4000 | 30
3 | 3000 | 60->90

我尝试了以下查询,但没有成功:

UPDATE `TABLE1` AS t1, (SELECT UserID, Product, MinutesUsed FROM `TABLE2`) AS t2
SET t1.MinutesUsed = t2.MinutesUsed
WHERE (t1.UserID = t2.UserID) AND (t2.MinutesUsed > t1.MinutesUsed)

我很高兴知道我做错了什么。

谢谢!

最佳答案

我想你只是想在这里更新加入:

UPDATE TABLE1 t1
INNER JOIN TABLE2 t2
ON t1.UserID = t2.UserID AND
t1.Product = t2.Product
SET
t1.MinutesUsed = t2.MinutesUsed
WHERE
t2.MinutesUsed > t1.MinutesUsed;

关于mysql - 根据 TABLE2 上的伴随行更新 TABLE1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58145415/

25 4 0