user2465936
user2465936

Reputation: 1040

mysql INNER JOIN with WHERE. Need to understand what the code does

Table 2_1_journal

TransactionPartnerName 
-----------------------
 name 1
 name 2
 name 3

Table 2_1_transactionpartners

CompanyName   |  PreviousCompanyName
------------------------------------
 name 1       |   
 name 2       |   
 name 3       |  name 2

For example want to change name 1 to name 11.

At first in table 2_1_transactionpartners copy name 1 from CompanyName and paste it in PreviousCompanyName

Next need in table 2_1_journal change name 1 to name 11. I think: change TransactionPartnerName to CompanyName where TransactionPartnerName equals to PreviousCompanyName. But I do not want in table 2_1_journal change name 2 to name 3 because want (give command) only to change name 1 to name 11.

This is my code. Found no errors. But want to be sure about what code does

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 = ?

? = name 11

As understand code updates 2_1_journal and copy CompanyName to TransactionPartnerName if CompanyName equals to name 11 and TransactionPartnerName equals to PreviousCompanyName

Am I correct? May be there is better way to reach the aim?

Upvotes: 0

Views: 30

Answers (1)

jerdiggity
jerdiggity

Reputation: 3665

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 = ?

Upvotes: 1

Related Questions