Documentaciónintersectar(tabla1, tabla2, 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
tabla1por existencia de la clave entabla2. - 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ámetro | Tipo | Descripción |
|---|---|---|
| tabla1 | TABLA | Primera tabla. |
| tabla2 | TABLA | Segunda tabla. |
| campo_clave | STRING | Campo 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