Parece que su método puede ser la única forma de hacer esto.
La razón es que NULL
es un valor válido para incluir en objetos JSON. Si bien la mayoría de las funciones de agregación ignoran los valores nulos, ignoran correctamente las filas que no coinciden que provienen de LEFT JOIN
, sería un problema para JSON_ARRAYAGG()
. Le impediría incluir valores nulos en otras situaciones. No hay forma de distinguir valores nulos explícitos de LEFT JOIN
nulos.