Documentaciónintersectar(tabla1, tabla2, campo_clave)

intersectar(tabla1,tabla2,campoclave)\texttt{intersectar}(tabla_{1}, tabla_{2}, campo_{clave})

Nombre

intersectar - Devuelve solo los registros cuya clave aparece en ambas tablas y fusiona sus campos.

Sinopsis

salida = tablas.intersectar(tabla1, tabla2, campo_clave)

Descripcion

Recorre tabla1 y conserva en la salida solo los registros cuya clave tambien existe en tabla2.

Cuando encuentra una coincidencia por campo_clave, toma el registro de tabla1 como base y le agrega los campos faltantes provenientes del registro correspondiente de tabla2.

Es util para:

  • quedarse solo con los registros comunes entre dos tablas
  • enriquecer la interseccion con informacion de ambos lados
  • construir subconjuntos cruzados por una clave compartida

Comportamiento

  • Filtra tabla1 por existencia de la clave en tabla2.
  • Solo los registros comunes pasan a la salida.
  • Cada registro comun se fusiona con los campos faltantes del registro coincidente en tabla2.
  • Los registros exclusivos de cualquiera de las tablas quedan fuera del resultado.

Funciones API relacionadas

  • tablas.unir()
  • tablas.mezclar()
  • tablas.left_join()

Parámetros

ParámetroTipoDescripción
tabla1TABLAPrimera tabla.
tabla2TABLASegunda tabla.
campo_claveSTRINGCampo clave de intersección.

Valor de retorno

TABLA - Nueva tabla con solo los registros comunes por campo_clave, enriquecidos con campos de ambos lados.

Ejemplo

ejemplo.blox
INCLUIR "tablas.api"
INCLUIR "strings.api"


FUNCION PRINCIPAL
INICIO

	TABLA  amigos, colegas, juntos
	NUMERICO i, val
	STRING campo

    // AMIGOS
    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
    colegas ={nombre = "Carlos",    email = "Carlos@blox.com"}
    colegas ={nombre = "Ana",       email = "Ana@blox.com"}
    colegas ={nombre = "Lorena",    email = "Lorena@blox.com"}
    colegas ={nombre = "Fabiana",   email = "Fabiana@blox.com"}
    colegas ={nombre = "Johana",    email = "Johana@blox.com"}
    colegas ={nombre = "Mirta",     email = "Mirta@blox.com"}




//
// Testado OK
//
// interceptar()
// Une dos tablas en una. Si los nombres son iguales, se incluye. 
// Si son diferentes, se omite.
//

    campo = "nombre"

    IMPRIMIR ("\nTABLA AMIGOS\n------------")
    tablas.imprimir(amigos)

    IMPRIMIR ("\nTABLA COLEGAS\n-------------")
    tablas.imprimir(colegas)

    juntos = tablas.intersectar(amigos, colegas, campo)
    IMPRIMIR ("\n\n\nINTERSECCION DE TABLAS\n-----------------------")
    tablas.imprimir(juntos)


FINAL