If the values are unique, you could try to virtually link tables, but the result is different.
In general (JSL) I think I would apply a row state handler, see screenshot and example. See also Scripting Index for Examples ...
You can delete the debugging part "print, show ", its only for better understanding.
Names Default To Here( 1 );
dtA = New Table( "tableA", add rows( 10 ), New Column( "col_15", "Numeric", "Ordinal", set each value( Random Integer( 10 ) ) ) );
dtB = New Table( "tableB", add rows( 10 ), New Column( "col_1", "Numeric", "Ordinal", set each value( Random Integer( 10 ) ) ) );
f = Function( {a},
Show( dtA << get selected rows );
val_lst = dtA:col_15[dtA << get selected rows];
dtB << clear select();
For Each( {value}, val_lst, print(value); dtB << select where( :col_1 == value, current selection( "extend" ) ) );
);
rs = dtA << make row state handler( f );
Georg