Hallo,
Wenn du das alles in 1 Select haben willst ist das SQL etwas komplexer.
Du musst die Data-Elemente als Subselect ausführen.
Da das ganze auch nicht so einfach ist musst du mit JSON_TO_BSON und umgekehrt die JSON Blöcke zusammen mergen, da SQL diese sonst Escapen und als ganzen Text Block betrachten würde.
Lange Rede, kurzer Sinn, hier wäre das SQL:
Code:
SELECT CHAR(JSON_OBJECT(
'Info' : JSON_OBJECT(
'Id' : JSON_GRP1.ID
, 'Name' : JSON_GRP1.NAME
)
, 'Group2' : JSON_OBJECT(
'Email' : JSON_GRP2.MAIL
)
, 'Data' :
json_array(
bson_to_json((SELECT json_to_bson (JSON_OBJECT('Data1' : json_arrayagg ( json_object ( 'Id' : JSON_GRP3.DATA1 null on null))))
FROM JSON_GRP3 where JSON_GRP1.ID = JSON_GRP3.ID))
, bson_to_json((SELECT json_to_bson (JSON_OBJECT('Data2' : json_arrayagg ( json_object ( 'Id' : JSON_GRP4.DATA2 null on null))))
FROM JSON_GRP4 where JSON_GRP1.ID = JSON_GRP4.ID)))
), 1000)
FROM JSON_GRP1
JOIN JSON_GRP2 ON JSON_GRP1.ID = JSON_GRP2.ID
LEFT JOIN JSON_GRP4 ON JSON_GRP1.ID = JSON_GRP4.ID
GROUP BY JSON_GRP1.ID, JSON_GRP1.NAME, JSON_GRP2.MAIL
lg Andreas
Bookmarks