gpt4 book ai didi

Mysql - 连接多个表以设置连接,以更新表中的单个列

转载 作者:行者123 更新时间:2023-11-29 15:19:19 26 4
gpt4 key购买 nike

我有四张 table ;共享 key ,并且我想更新其中一列,并连接其中两个关键字段例如

Table| Person | Account | Transaction | TxnRecord
------------------------------------------------
Keys |PersonID|AccountID| Txn ID | RecordID
| |PersonID | AccountID | TxnID

所以我最初尝试创建一个临时列来保存由 PersonID 和 AccountID 组成的新连接记录 ID。我还选择了其他 ID 来验证查询的行为是否符合预期。

SELECT p.PersonID
, a.AccountID
, t.TxnID
, r.RecordID
, CONCAT(p.PersonID,"-", a.AccountID) as NewRecordID
FROM Person p
JOIN Account a
ON a.PersonID = p.PersonID
JOIN Transaction t
ON t.AccountID = a.AccountID
JOIN TxnRecords r
ON t.TxnID = r.TxnID;

现在的问题是我对 Mysql 库中 UPDATE INNER JOIN 的理解。我已经尝试过,但无法让它发挥作用。

这是我的初步尝试

UPDATE TxnRecord
SET TxnRecord.RecordID = CONCAT(Person.PersonID,"-",Account.AccountID)
(((INNER JOIN Transaction ON Transaction.TxnID = TxnRecord.TxnID)
INNER JOIN Account ON Transaction.AccountID = Account.AccountID)
INNER JOIN PersonID ON Account.PersonID = Person.PersonID)

请帮助我了解更新内部联接是否能够实现类似的功能,或者我应该研究其他方法吗?谢谢。

最佳答案

SET 子句出现在所有连接之后。并且连接处不需要括号。

UPDATE TxnRecord
INNER JOIN Transaction ON Transaction.TxnID = TxnRecord.TxnID
INNER JOIN Account ON Transaction.AccountID = Account.AccountID
INNER JOIN PersonID ON Account.PersonID = Person.PersonID
SET TxnRecord.RecordID = CONCAT(Person.PersonID,"-",Account.AccountID)

SELECT 查询中也不需要括号。

关于Mysql - 连接多个表以设置连接,以更新表中的单个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59474922/

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