Detta svarar på den ursprungliga frågan.
Du behöver varken tags
inte heller users
tabell för din fråga, så den kan förenklas mycket.
DISTINCT
är inte tillåtet med JSON_AGG()
. Men du kan använda en underfråga:
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;
Här är en db<>fiol.