Migrate failure: on clause is ambiguous
Figured it out!

When defining the field in the MigrateSQLMap I can set a table alias for the field:

$this-&gt;map = new MigrateSQLMap($this-&gt;machineName,
    array(
        'labelId' =&gt; array(
            'type' =&gt; 'int',
            'not null' =&gt; TRUE,
            'alias' =&gt; 'l', // it's the letter small case "L", not the digit 1
        )
    ),
    MigrateDestinationTerm::getKeySchema()
);


The 'alias' =&gt; 'l' makes the labelId become l.labelId in the queries.