Het lijkt erop dat jouw methode de enige manier is om dit te doen.
De reden is dat NULL is een geldige waarde om op te nemen in JSON-objecten. Terwijl de meeste aggregatiefuncties nulls negeren, negeren ze dus correct niet-overeenkomende rijen die afkomstig zijn van LEFT JOIN , zou het een probleem zijn voor JSON_ARRAYAGG() . Het zou voorkomen dat u in andere situaties null-waarden opneemt. Er is geen manier om expliciete nulls te onderscheiden van LEFT JOIN nullen.