Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dodawanie sumy z 2 różnych tabel

Sugeruję normalize Twoje dane zgodnie z sugestiami innych.

Na podstawie obecnego projektu możesz użyć FIND_IN_SET aby osiągnąć pożądany rezultat.

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

Zobacz demo

Uruchamiając to zapytanie na podanym zestawie danych, otrzymasz dane wyjściowe jak poniżej:

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

Koniecznie przeczytaj

Czy przechowywanie rozdzielanej listy w kolumnie bazy danych jest naprawdę takie złe?

Więcej

W ten sposób Twoje vidoes tabela wyglądałaby tak, jakbyś znormalizował swoje dane:

vidoes

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. FORMAT() Przykłady w MySQL

  2. Najlepszy sposób na archiwizację bazy danych MySQL na żywo

  3. Aby użyć domyślnego programu BatchConfigurer, kontekst musi zawierać nie więcej niż jedno źródło danych, znalezione 2

  4. Samouczek MySQL — przewodnik dla początkujących do nauki MySQL

  5. MySqlCommand Prepare() nigdy nie ustawia IsPrepared na true