sql >> Databasteknik >  >> RDS >> Mysql

Ta bort dubbletter på MySQL JOIN-fråga på JSON_ARRAYAGG med INNER JOIN

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.



  1. SQL-Server DB-designtidsscenario (distribuerat eller centraliserat)

  2. hur man konfigurerar SQL Server max minnesanvändning

  3. Oracle SQL:Returnera första raden i strängen med regexp_substr

  4. Skaffa en array från MySQL till Android