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.
Georg_0-1660918444000.png
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