Documentaciónunir(tabla1, tabla2, campo_clave)

unir(tabla1,tabla2,campoclave)\texttt{unir}(tabla_{1}, tabla_{2}, 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 tabla2 y busca coincidencias por campo_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ámetroTipoDescripción
tabla1TABLAPrimera tabla.
tabla2TABLASegunda tabla.
campo_claveSTRINGCampo 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