यह मूल प्रश्न का उत्तर देता है।
आपको न तो tags
की आवश्यकता है न ही users
आपकी क्वेरी के लिए तालिका, ताकि इसे बहुत सरल बनाया जा सके।
DISTINCT
JSON_AGG()
के साथ अनुमति नहीं है . लेकिन आप एक सबक्वेरी का उपयोग कर सकते हैं:
SELECT b.user_id, JSON_ARRAYAGG( b.tag_id) AS tags
FROM (SELECT DISTINCT b.user_id, bt.tag_id
FROM bookmark_tag bt JOIN
bookmark b
ON b.id = bt.bookmark_id
) b
GROUP BY b.user_id;
यहां एक डीबी<>बेला है।