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

Somma somma da 2 tabelle diverse

Suggerirei vivamente di normalize i tuoi dati come altri hanno suggerito.

In base al tuo progetto attuale puoi utilizzare FIND_IN_SET per ottenere il risultato che desideri.

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

Guarda la demo

Eseguendo questa query sul set di dati fornito, otterrai un output come di seguito:

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

Da leggere

La memorizzazione di un elenco delimitato in una colonna del database è davvero così male?

Altro

Ecco come il tuo vidoes la tabella sarebbe se normalizzi i tuoi dati:

videos

id   member_id