Il semble que votre méthode soit le seul moyen de le faire.
La raison est que NULL
est une valeur valide à inclure dans les objets JSON. Alors que la plupart des fonctions d'agrégation ignorent les valeurs nulles, elles ignorent donc correctement les lignes non correspondantes provenant de LEFT JOIN
, ce serait un problème pour JSON_ARRAYAGG()
. Cela vous empêcherait d'inclure des valeurs nulles dans d'autres situations. Il n'y a aucun moyen de distinguer les valeurs nulles explicites de LEFT JOIN
nuls.