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

Cộng tổng từ 2 bảng khác nhau

Tôi thực sự khuyên bạn nên normalize dữ liệu của bạn như những người khác đề xuất.

Dựa trên thiết kế hiện tại của bạn, bạn có thể sử dụng FIND_IN_SET để đạt được kết quả bạn muốn.

SELECT 
 M.id,
 M.name,
 COUNT(*) total
FROM members M 
INNER JOIN videos V ON FIND_IN_SET(M.name,V.members) > 0
GROUP BY M.name
ORDER BY M.id

Xem Demo

Chạy truy vấn này trên tập dữ liệu đã cho của bạn, bạn sẽ nhận được kết quả như bên dưới:

| id |  name | total |
|----|-------|-------|
|  1 |   Tom |     2 |
|  2 |   Bob |     2 |
|  3 |  Zack |     3 |
|  4 |   Dan |     3 |
|  5 | Casey |     2 |

A phải đọc

Việc lưu trữ danh sách được phân tách trong cột cơ sở dữ liệu có thực sự tồi tệ không?

Thêm

Đây là cách vidoes của bạn bảng sẽ trông giống như nếu bạn chuẩn hóa dữ liệu của mình:

videos

id   member_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đặt tùy chọn tự động kết nối với trình kết nối mysql c ++

  2. Mysql group_concat giới hạn hàng trong nhóm

  3. Bảng PHP (Ngày) thay đổi màu động dựa trên tính hợp lệ

  4. Chèn dữ liệu từ cột của bảng và lưu trữ vào cột của bảng khác

  5. MySQL SELECT AS kết hợp hai cột thành một