mysql内部连接到WHERE。需要了解代码的作用
表mysql内部连接到WHERE。需要了解代码的作用,mysql,Mysql,表2\u 1\u日记帐 TransactionPartnerName ----------------------- name 1 name 2 name 3 表2\u 1\u交易伙伴 CompanyName | PreviousCompanyName ------------------------------------ name 1 | name 2 | name 3 | name 2 例如,要将name 1更改为n
2\u 1\u日记帐
TransactionPartnerName
-----------------------
name 1
name 2
name 3
表2\u 1\u交易伙伴
CompanyName | PreviousCompanyName
------------------------------------
name 1 |
name 2 |
name 3 | name 2
例如,要将name 1
更改为name 11
首先在表2\u 1\u transactionpartners
中从CompanyName
复制name 1
,并将其粘贴到PreviousCompanyName
表2\u 1\u journal
中的下一个需要将name 1
更改为name 11
。我认为:将TransactionPartnerName
更改为CompanyName
,其中TransactionPartnerName
等于PreviousCompanyName
。但是我不想在表2\u 1\u journal
中将name 2
更改为name 3
,因为我只想(发出命令)将name 1
更改为name 11
这是我的密码。没有发现任何错误。但我想确定代码的作用是什么
UPDATE 2_1_journal
INNER JOIN 2_1_transactionpartners ON (2_1_journal.TransactionPartnerName = 2_1_transactionpartners.PreviousCompanyName)
SET 2_1_journal.TransactionPartnerName = 2_1_transactionpartners.CompanyName
WHERE 2_1_transactionpartners.CompanyName = ?
?
=名称11
如理解,如果CompanyName
等于name 11
且TransactionPartnerName
等于PreviousCompanyName
我说得对吗?可能有更好的方法来达到这个目标吗 这段代码是否更快(执行速度更快)?我在某个地方读到,使用内部连接更好
UPDATE IGNORE 2_1_transactionpartners, 2_1_journal
SET 2_1_journal.TransactionPartnerName = 2_1_transactionpartners.CompanyName
WHERE 2_1_journal.TransactionPartnerName =
2_1_transactionpartners.PreviousCompanyName
AND 2_1_transactionpartners.CompanyName = ?