La función NATURALLEFTOUTERJOIN realiza una combinación externa izquierda natural de dos tablas.
NATURALLEFTOUTERJOIN(
leftJoinTable,
rightJoinTable
)
- leftJoinTable: Tabla existente o expresión que devuelve una tabla para el lado izquierdo de la combinación.
- rightJoinTable: Tabla existente o expresión que devuelve una tabla para el lado derecho de la combinación.
La función NATURALLEFTOUTERJOIN devuelve la tabla izquierda tras añadir las columnas no comunes de la tabla derecha usando como claves los valores de los campos comunes en ambas tablas.
La tabla resultante tendrá las columnas de la tabla izquierda más las columnas no comunes de la tabla derecha.
No se garantiza el orden de las filas en la tabla resultado.
Las columnas comunes deberán tener el mismo tipo de datos en ambas tablas.
Solo se combinan columnas con la misma ascendencia (procedentes de la misma fuente).
Supongamos que partimos de las siguientes dos tablas, "Population":
y "Extension":
...conteniendo respectivamente la población y extensión de cierto número de países.
Podemos intentar realizar un left outer join entre estas dos tablas con la siguiente expresión:
naturalleftouterjoin = NATURALLEFTOUTERJOIN(Extension, Population)
...pero vemos cómo devuelve un mensaje de error debido a un bug de DAX al trabajar con este tipo de combinaciones.
Una posible solución consiste en leer las tablas usando la función SELECTCOLUMNS añadiendo a los campos comunes una cadena de texto vacía:
naturalleftouterjoin =
VAR
LeftTable =
SELECTCOLUMNS(
Population,
"Country", Population[Country] & "",
"Population", Population[Population]
)
VAR
RightTable =
SELECTCOLUMNS(
Extension,
"Country", Extension[Country] & "",
"Extension", Extension[Extension]
)
RETURN
NATURALLEFTOUTERJOIN(LeftTable, RightTable)