?`[.data.table` for the official docs.
If x & i have a key or x is keyed to match i's first few columns, then the on can be skipped like x[i].
In j of x[i, on, j], columns of i can be referred with i.* prefixes.
In j of x[i, on, j, by=.EACHI], j is computed for each row of i.
This is the only value of by worth using. For any other value, columns of i are not available.