Verkar som din metod kan vara det enda sättet att göra detta.
Anledningen är att NULL
är ett giltigt värde att inkludera i JSON-objekt. Medan de flesta aggregeringsfunktioner ignorerar nollvärden, så ignorerar de korrekt icke-matchande rader som kommer från LEFT JOIN
, skulle det vara ett problem för JSON_ARRAYAGG()
. Det skulle hindra dig från att inkludera nollvärden i andra situationer. Det finns inget sätt att skilja explicita nollor från LEFT JOIN
noll.