awk csv using a loop

I have a two files. One is a list called Good_System and the other is a csv called Many_System. I want to do a for loop to go through each
Good_System line and where the two fields match the line in Many_System , edit that line by inserting "Good" into the first field.

If no match, then just leave the original line in Many_System. How do I go through the loop without creating duplicate lines in Many_System when there's no match ?
Thanks,
wbrunc

Good_System

SysA,10.123.456.789
SysD,10.123.456.787
SysE,10.123.456.786

Many_System

,SysA,10.123.456.789
,SysB,10.123.456.785
,SysD,10.123.456.787
Good,SysD,10.123.456.787
,SysE,10.123.456.786

Desired Many_System file. Edits in Italic.

Good,SysA,10.123.456.789
,SysB,10.123.456.785
,SysC,10.123.456.788
Good,SysD,10.123.456.787
Good,SysD,10.123.456.787 - no change to this line
Good,SysE,10.123.456.786

Does it have to be a for loop? With awk, try:

$ awk 'FNR==NR {GOOD[","$0]="Good"; next} {print GOOD[$0] $0}' file1 file2
Good,SysA,10.123.456.789
,SysB,10.123.456.785
Good,SysD,10.123.456.787
Good,SysD,10.123.456.787
Good,SysE,10.123.456.786

There's no SysC line in your input, so I'm surprised there's one in your output, and there is a duplicate for SysD in your output even though you insisted on NO duplicates...

To clarify. Many_System is the base file that I'm editing. The original lines in it should remain unless they need to be edited because of a match from a Good_System line. Therefore, the SysC line that you mention is part of that and should remain.

I'm only editing if Good_Systems fields match Many_System fields 2 and 3 AND Many_System field 1 is blank.
So the first SysD line in Many_System should be edited but the next SysD
line should be left alone. When I said no duplicates, I meant that I don't want
lines created in Many_System only editing of existing lines .