Det ser ud til, at din metode er den eneste måde at gøre dette på.
Årsagen er, at NULL
er en gyldig værdi, der skal inkluderes i JSON-objekter. Mens de fleste aggregeringsfunktioner ignorerer nuller, så ignorerer de korrekt ikke-matchende rækker, der kommer fra LEFT JOIN
, ville det være et problem for JSON_ARRAYAGG()
. Det ville forhindre dig i at inkludere nulværdier i andre situationer. Der er ingen måde at skelne eksplicitte nuller fra LEFT JOIN
nuller.