join f1 to f2 so that each join-able f1 record only joins once to the first available match-able in f2

Hopefully someone can help me with this. Given 2 files

f1

card1,value1,f1c11,f1c12

card2,value2,f1c21,f1c22

card3,value3,f1c31,f1c32

card4,value4,f1c41,f1c42

card4,value4,f1c411,f1c412

card4,value,f1c421,f1c422

card5,vaule5,f1c51,f1c52

f2

card,value2,f2c1,f2c2

card2,value,f2c21,f2c22

card2,value2,f2c211,f2c212

card2,value2,f2c221,f2c222

card3,value3,f2c31,f2c32

card4,value4,f2c41,f2c42

card4,value4,f2c411,f2c412

card5,vaule5,f2c51,f2c52

card6,vaule6,f2c61,f2c62

card7,vaule5,f2c71,f2c72

desired:
join f1 to f2 so that each join-able f1 record only joins once to the first available match-able in f2

card2,value2,f1c21,f1c22,f2c211,f2c212

card3,value3,f1c31,f1c32,f2c31,f2c32

card4,value4,f1c41,f1c42,f2c41,f2c42

card4,value4,f1c411,f1c412,f2c41,f2c42

card5,vaule5,f1c51,f1c52,f2c51,f2c52

Go to Source
Author: Henry P