Documentaciónleft_join(tabla1, tabla2, campo_clave)
Nombre
left_join - Conserva todos los registros de la tabla izquierda y los enriquece con la tabla derecha cuando hay coincidencia.
Sinopsis
salida = tablas.left_join(tabla1, tabla2, campo_clave)
Descripcion
Usa tabla1 como lado izquierdo de la operacion y copia sus registros a la salida.
Luego recorre tabla2 para copiar campos adicionales solo en aquellos registros cuya clave coincide con un registro ya existente en tabla1.
Es util para:
- enriquecer una tabla principal con informacion opcional
- conservar todos los registros de la izquierda aunque no tengan match
- reproducir una operacion similar a
LEFT JOINde SQL: devolver todos los registros de la tabla izquierda y, cuando exista coincidencia por clave, enriquecerlos con los campos de la tabla derecha
Comportamiento
- La salida siempre contiene todos los registros de
tabla1. - Si una clave de
tabla2coincide, copia sus campos distintos decampo_clavesobre el registro correspondiente. - Si una clave de
tabla2no existe entabla1, no agrega ese registro a la salida. - No modifica la tabla izquierda original.
Funciones API relacionadas
tablas.unir()tablas.mezclar()tablas.intersectar()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| tabla1 | TABLA | Tabla izquierda: sus registros siempre se conservan. |
| tabla2 | TABLA | Tabla derecha: aporta campos adicionales si encuentra coincidencia por clave. |
| campo_clave | STRING | Campo usado para emparejar registros. |
Valor de retorno
TABLA - Nueva tabla basada en tabla1, enriquecida con campos de tabla2 cuando la clave coincide.
Ejemplo
ejemplo.blox
INCLUIR "tablas.api"
FUNCION PRINCIPAL
INICIO
TABLA clientes, deudas, out
clientes[1] = { id = 1, nombre = "Ana" }
clientes[2] = { id = 2, nombre = "Beto" }
clientes[3] = { id = 3, nombre = "Carla" }
deudas[1] = { id = 2, saldo = 1500, estado = "pendiente" }
deudas[2] = { id = 3, saldo = 0, estado = "al dia" }
deudas[3] = { id = 4, saldo = 900, estado = "pendiente" }
IMPRIMIR("\nCLIENTES")
tablas.imprimir(clientes)
IMPRIMIR("\nDEUDAS")
tablas.imprimir(deudas)
out = tablas.left_join(clientes, deudas, "id")
IMPRIMIR("\nLEFT JOIN")
tablas.imprimir(out)
FINAL