Dit beantwoordt de oorspronkelijke vraag.
Je hebt noch de tags
. nodig noch de users
tabel voor uw zoekopdracht, zodat deze veel vereenvoudigd kan worden.
DISTINCT
is niet toegestaan met JSON_AGG()
. Maar u kunt een subquery gebruiken:
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;
Hier is een db<>viool.