Mysql
 sql >> Database >  >> RDS >> Mysql

Rimuovere i duplicati sulla query MySQL JOIN su JSON_ARRAYAGG con INNER JOIN

Questo risponde alla domanda originale.

Non hai bisogno né dei tags né gli users tabella per la tua query, quindi può essere molto semplificata.

DISTINCT non è consentito con JSON_AGG() . Ma puoi usare una sottoquery:

 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;

Qui è un db<>violino.