Ir al contenido

Join DataTable

Tipo: join-datatable  ·  Paquete: DataTable Activities v1.0.5  ·  Salida: DataTable

Combina dos DataTables en una sola, emparejando sus filas por una columna común (una clave). Es como un JOIN de SQL o un BUSCARV de Excel: te permite enriquecer una tabla con datos de otra — por ejemplo, unir las ventas con el catálogo de clientes para tener el nombre y el correo junto a cada venta.

Empareja cada fila de la tabla izquierda (left) con las de la derecha (right) que tengan el mismo valor en la columna on (que debe existir en ambas). El parámetro type decide qué pasa con las filas sin pareja:

  • inner (por defecto): solo conserva las filas que tienen pareja en ambas tablas.
  • left: conserva todas las filas de la izquierda; las que no tengan pareja en la derecha quedan con esas columnas vacías.

Detalles del emparejamiento:

  • Las claves se comparan como texto y sin distinguir mayúsculas ("A-10" empareja con "a-10"). Las celdas vacías de ambos lados se emparejan entre sí.
  • Si una fila izquierda tiene varias parejas en la derecha, el resultado tiene una fila por cada pareja.
  • Las filas salen en el orden de la tabla izquierda.
  • Ninguna de las dos tablas se modifica.
ParámetroTipoPor defectoDescripción
leftDataTable—La DataTable izquierda (la principal).
rightDataTable—La DataTable derecha (la que aporta columnas).
onstring—Nombre de la columna común por la que unir (debe existir en ambas).
ParámetroTipoPor defectoDescripción
typestring"inner"Tipo de unión: inner (solo filas con pareja) · left (todas las de la izquierda).

Devuelve una DataTable nueva con:

  1. todas las columnas de left, con sus tipos;
  2. las columnas de right excepto on (que ya está en la izquierda). Si una columna de la derecha se llama igual que una de la izquierda, aparece como right_<nombre>.

Si ninguna fila empareja con inner, devuelve una tabla con esas columnas y 0 filas.

MensajeCausa y solución
'left' debe ser una DataTable. / 'right' debe ser una DataTable.Una de las tablas no evalúa a una DataTable.
'on' es obligatorio.Falta la columna de unión.
Column '…' does not belong to table ….La columna on no existe en una de las dos tablas (mensaje de .NET, sin traducir). Iguala los nombres con Rename Column.

Unir ventas con datos de cliente por la columna ClienteId y quedarse con las ventas sin cliente registrado:

Join DataTable left = ventas right = clientes on = "ClienteId" type = left → output: ventasCompletas
Filter DataTable table = ventasCompletas conditions: Nombre is-empty → output: sinCliente
Log message = rowCount(sinCliente) + " ventas sin cliente registrado"