You can only use the join clause to join on the equality of one or many fields. If they're ALL equal, then it's a match, if not, then not. The only operators supported in the join clause are 'and' and 'equals'. If you only use inner join, then you could use a cross join instead to emulate an inner join and filter in the where condition, e.g:
From a in db.Table1 _
From b in db.Table2 _
Where a.Something=b.Something And a.SomethingElse.StartsWith("a")
I tried a different approach:
Create a cartesian product with the two tables.
Use the length of ID1 to match to ID2 (ie.if (ID1 = left(ID2,length of ID1).
See the attched example.
Test57.qvw 139.5 K