Documentaciónunir(tabla1, tabla2, campo_clave)
Nombre
unir - Une dos tablas por clave sin duplicar registros coincidentes.
Sinopsis
salida = tablas.unir(tabla1, tabla2, campo_clave)
Descripcion
Toma tabla1 como base y recorre tabla2 para agregar solo los registros cuya clave aun no existe en la salida.
Si un registro de tabla2 ya tiene una coincidencia por campo_clave dentro de tabla1, no se agrega de nuevo ni se fusionan sus campos.
Es util para:
- unir dos conjuntos de registros evitando duplicados por clave
- agregar nuevos registros sin alterar los ya existentes
- construir una union simple a partir de una tabla base
Comportamiento
- Copia primero todos los registros de
tabla1. - Recorre
tabla2y busca coincidencias porcampo_clave. - Si la clave no existe en la salida, agrega el registro completo.
- Si la clave ya existe, deja el registro original intacto.
Funciones API relacionadas
tablas.mezclar()tablas.left_join()tablas.intersectar()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| tabla1 | TABLA | Primera tabla. |
| tabla2 | TABLA | Segunda tabla. |
| campo_clave | STRING | Campo clave para unir. |
Valor de retorno
TABLA - Nueva tabla que contiene todos los registros de tabla1 mas los registros de tabla2 cuya clave no estaba presente.
Ejemplo
ejemplo.blox
INCLUIR "tablas.api"
INCLUIR "strings.api"
FUNCION PRINCIPAL
INICIO
TABLA amigos, colegas, juntos
NUMERICO i, val, sts
STRING campo
amigos = {
nombre = "Carlos",
edad = 30,
ciudad = "Asuncion"
}
amigos = {
nombre = "Juan",
edad = 21,
ciudad = "Encarnacion"
}
amigos = {
nombre = "Roberto",
edad = 45
ciudad = "Concepcion"
}
amigos = {
nombre = "Maria",
edad = 19
ciudad = "Concepcion"
}
colegas ={nombre = "Carlos", email = "carlos@pseudo.com"}
colegas ={nombre = "Ana"}
colegas ={nombre = "Lorena"}
//
// Testado OK
//
// unir()
// Une dos tablas en una. Si los nombres son diferentes, se agrega.
// Si son iguales, una se descarta.
campo = "nombre"
val = 21
IMPRIMIR ("\nTABLA ORIGINAL\nAMIGOS\n")
sts = tablas.imprimir(amigos)
IMPRIMIR ("\nCOLEGAS\n")
sts = tablas.imprimir(colegas)
IMPRIMIR ("\n\n\nTABLAS UNIDAS\n")
juntos = tablas.unir(amigos, colegas, campo)
sts = tablas.imprimir(juntos)
FINAL