Estoy trabajando con el migratemódulo por primera vez y he trabajado db_selectun poco con la API, pero me encuentro con un error.
Estoy tratando de convertir algunas etiquetas antiguas en una taxonomía drupal. Cuando navego a la /admin/content/migratepágina, realiza mi consulta correctamente y muestra el número correcto de filas que deben migrarse. Sin embargo, cuando realmente intento ejecutar la importación, aparece este error:
La migración falló con la excepción del complemento de origen: SQLSTATE [23000]: Infracción de restricción de integridad: 1052 La columna 'labelId' en la cláusula on es ambigua
Aquí está el código que tengo en mi clase LabelMigration:
$this->map = new MigrateSQLMap($this->machineName,
array(
'labelId' => array('type' => 'int', 'not null' => TRUE)
),
MigrateDestinationTerm::getKeySchema()
);
$query = db_select('migrate_account_label', 'l')
->fields('l', array('labelId', 'label'))
;
$query->leftJoin('migrate_asset_labels_membership', 'lm', 'l.labelId = lm.labelId');
$query->leftJoin('migrate_asset', 'a', 'lm.assetId = a.assetId');
$query->addExpression('count(*)', 'num');
$query->condition('a.type', 'B');
$query->groupBy('l.labelId');
$query->groupBy('l.label');
$this->source = new MigrateSourceSQL($query);
// Set up our destination - terms in the vocabulary
$this->destination = new MigrateDestinationTerm('article_labels');
$this->addFieldMapping('name', 'label');
$this->addFieldMapping('description')
->defaultValue('');
Si elimino las leftJoin()llamadas, entonces obviamente el error sobre la ondeclaración desaparece, pero no entiendo cómo labelIdes ambiguo porque siempre estoy haciendo referencia a él con un alias de tabla.
¿Alguna idea de dónde viene este error? ¿Viene del MigrateSQLMap en la parte superior? Si es así, ¿cómo puedo hacer referencia a eso labelIdcon un alias para que no sea ambiguo? Traté de hacerlo l.labelId, pero eso no funcionó.

Pensé que se estaba poniendo
aliasa1(es decir, la verdadera booleano), pero hay una razón que es una cadena - que es el alias actual, así que si estás alias esn,'alias' => 'n'. Eso realmente me costó aproximadamente 1/2 hora.fuente