gpt4 book ai didi

mysql - 在一条语句中对 MySQL 进行更新

转载 作者:行者123 更新时间:2023-11-29 05:58:13 25 4
gpt4 key购买 nike

我试图让这个 SQL (MySQL) 更新第三个表,基于前两个表的数据。我需要它的原因是我们正在进行一些用户测试,并且由于我是唯一可以访问数据库的人,所以我需要一些方法来快速进行更改。这些更改是从前端开发人员请求的。我当然可以通过电子邮件找到 user_account,然后找到第三张表,但最好是他们向我发送此查询,然后我就运行它。数据库是测试版,所以即使有错误的查询也不会造成伤害。

简而言之。用户表通过 user_id 连接到 user_account。第三个表通过 user_account_id 连接。

我已经尝试过这个 SQL,但它没有执行任何结果(0 行受影响)。

SET @id1 = (SELECT id FROM users WHERE email = 'someemail@aaa.com');
SET @id2 = (SELECT id FROM user_accounts WHERE user_id = @id1);
UPDATE user_product_status AS ups
SET access_starts_at = '2022-04-03 08:52:58'
WHERE ups.user_account_id = @id2

最佳答案

有可能UPDATE一个或多个JOIN -ed 表。查询是:

UPDATE user_product_status ups
INNER JOIN user_accounts ua ON ups.user_account_id = ua.id
INNER JOIN users u ON ua.user_id = u.id
SET ups.access_starts_at = '2022-04-03 08:52:58'
WHERE u.email = 'someemail@aaa.com'

您可以将此查询更改为 SELECT 查询以检查哪些行将被更新:

SELECT * FROM user_product_status ups
INNER JOIN user_accounts ua ON ups.user_account_id = ua.id
INNER JOIN users u ON ua.user_id = u.id
WHERE u.email = 'someemail@aaa.com'

关于mysql - 在一条语句中对 MySQL 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com