Mysql
 sql >> Base de données >  >> RDS >> Mysql

Supprimer les doublons sur la requête MySQL JOIN sur JSON_ARRAYAGG avec INNER JOIN

Cela répond à la question initiale.

Vous n'avez besoin ni des tags ni les users table pour votre requête, elle peut donc être beaucoup simplifiée.

DISTINCT n'est pas autorisé avec JSON_AGG() . Mais vous pouvez utiliser une sous-requête :

 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;

ici est un db<>violon.