Mysql
 sql >> Base de données >  >> RDS >> Mysql

Additionner la somme de 2 tables différentes

Je suggérerais fortement de normalize vos données comme d'autres l'ont suggéré.

En fonction de votre conception actuelle, vous pouvez utiliser FIND_IN_SET pour obtenir le résultat souhaité.

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

Voir la démo

En exécutant cette requête sur votre ensemble de données donné, vous obtiendrez une sortie comme ci-dessous :

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

A lire absolument

Est-ce vraiment si mauvais de stocker une liste délimitée dans une colonne de base de données ?

Plus

C'est ainsi que vos vidoes le tableau ressemblerait si vous normalisiez vos données :

vidoes

id   member_id