Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Adicionando soma de 2 tabelas diferentes


Eu sugiro fortemente normalize seus dados como outros sugeriram.

Com base no seu design atual, você pode usar FIND_IN_SET para alcançar o resultado desejado.
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

Ver demonstração

Executando esta consulta em seu conjunto de dados fornecido, você obterá uma saída como abaixo:
| id |  name | total |
|----|-------|-------|
|  1 |   Tom |     2 |
|  2 |   Bob |     2 |
|  3 |  Zack |     3 |
|  4 |   Dan |     3 |
|  5 | Casey |     2 |

Uma leitura obrigatória

O armazenamento de uma lista delimitada em uma coluna de banco de dados é tão ruim assim?

Mais

É assim que seus vidoes tabela ficaria se você normalizasse seus dados:

vidoes
id   member_id