Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Loại bỏ các bản sao trên truy vấn MySQL JOIN trên JSON_ARRAYAGG với INNER JOIN

Điều này trả lời câu hỏi ban đầu.

Bạn không cần thẻ tags cũng không phải người dùng tags bảng cho truy vấn của bạn, vì vậy nó có thể được đơn giản hóa nhiều.

DISTINCT không được phép với JSON_AGG() . Nhưng bạn có thể sử dụng một truy vấn con:

 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;

Tại đây là một db <> fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Workbench có được quyền truy cập để quản trị?

  2. tạo 3 danh sách thả xuống phụ thuộc bằng php ajax mysql

  3. Làm thế nào để thêm cột bằng cách sử dụng thay đổi trong mysql?

  4. Phát hiện hỗ trợ mysql trong php

  5. Cơ sở dữ liệu tìm kiếm PDO sử dụng LIKE