Ini menjawab pertanyaan awal.
Anda tidak memerlukan tags
maupun users
tabel untuk kueri Anda, sehingga dapat lebih disederhanakan.
DISTINCT
tidak diperbolehkan dengan JSON_AGG()
. Tetapi Anda dapat menggunakan subkueri:
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;
Di sini adalah db<>biola.