sql >> Databasteknik >  >> RDS >> Mysql

Lägger till summa från 2 olika tabeller

Jag skulle starkt rekommendera att normalize dina uppgifter som andra föreslog.

Baserat på din nuvarande design kan du använda FIND_IN_SET för att uppnå det resultat du vill ha.

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

Se demo

När du kör den här frågan på din givna datamängd får du utdata som nedan:

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

Ett måste att läsa

Är det verkligen så dåligt att lagra en avgränsad lista i en databaskolumn?

Mer

Så här är dina vidoes Tabell skulle se ut så här om du normaliserar dina data:

vidoes

id   member_id


  1. Kan inte ansluta till MySQL 4.1+ med gammal autentisering

  2. SQLSTATE[HY000] [2002] Inget sådant fil- eller katalogfel vid migrering av tabell i Laravel

  3. Vad är nytt i Access 2016? Är det värt att uppgradera?

  4. Hämta data från tabellen med PL/SQL