मान लें कि report
users
. के लिए एक 1:1
है संबंध, तो आप एक व्युत्पन्न तालिका में टिप्पणी एकत्रीकरण करके और इसके बजाय उसमें शामिल होकर अपनी समस्या को हल करने में सक्षम होना चाहिए:
SELECT report.text,
Json_arrayagg(Json_object('display_name', users.display_name, 'photo_url'
,
users.photo_url)) AS USER,
rc.COMMENTS
FROM report
INNER JOIN users ON users.id = report.user_id
LEFT JOIN (
SELECT report_id,
Json_arrayagg(Json_object('text', report_comments.text, 'display_name',
report_comments.user_id)) AS COMMENTS
FROM report_comments
GROUP BY report_id
) rc ON rc.report_id = report.id
WHERE report.user_id = :userId
GROUP BY report.id
यदि किसी रिपोर्ट में एकाधिक उपयोगकर्ता हो सकते हैं, तो आपको उसी तरीके से एक व्युत्पन्न तालिका में उपयोगकर्ता जानकारी एकत्र करने की आवश्यकता होगी।