gpt4 book ai didi

mysql - 使用连接更新列

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

SELECT lott.id as lottery_id,lott.abbr,lott.currency,payments.id as payment_id,
payment_prizes.prize_id,prizes.name,prizes.currency as prizes_currency
FROM lotteries lott
JOIN lottery_payments payments
ON
payments.lottery_id = lott.id
JOIN lottery_payment_prizes payment_prizes
ON
payment_prizes.payment_id = payments.id
JOIN lottery_prizes prizes
ON
prizes.id = payment_prizes.prize_id
WHERE lott.currency = "ID"

我需要更新 lottery_prizes 表中的所有货币,其中 ID 来自上面的查询。我这样做了

UPDATE lottery_prizes SET currnecy = 'ID'
WHERE id IN(SELECT prizes.id
FROM lotteries lott
JOIN lottery_payments payments
ON
payments.lottery_id = lott.id
JOIN lottery_payment_prizes payment_prizes
ON
payment_prizes.payment_id = payments.id
JOIN lottery_prizes prizes
ON
prizes.id = payment_prizes.prize_id
WHERE lott.currency = "ID")

我有这个错误:
/* SQL 错误 (1093): 您不能在 FROM 子句中指定要更新的目标表 'lottery_prizes' */谢谢大家

最佳答案

  UPDATE lottery_prizes l 
JOIN (SELECT prizes.id
FROM lotteries lott
JOIN lottery_payments payments
ON
payments.lottery_id = lott.id
JOIN lottery_payment_prizes payment_prizes
ON
payment_prizes.payment_id = payments.id
JOIN lottery_prizes prizes
ON
prizes.id = payment_prizes.prize_id
WHERE lott.currency = "ID") t
ON t.Id = l.Id
SET currency = 'ID'

关于mysql - 使用连接更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4449836/

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