Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Summe aus 2 verschiedenen Tabellen addieren

Ich würde dringend zur normalize raten Ihre Daten wie von anderen vorgeschlagen.

Basierend auf Ihrem aktuellen Design können Sie FIND_IN_SET um das gewünschte Ergebnis zu erzielen.

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

Siehe Demo

Wenn Sie diese Abfrage für Ihren angegebenen Datensatz ausführen, erhalten Sie eine Ausgabe wie unten:

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

Unbedingt lesen

Ist das Speichern einer Liste mit Trennzeichen in einer Datenbankspalte wirklich so schlecht?

Mehr

So werden Ihre vidoes Tabelle würde so aussehen, wenn Sie Ihre Daten normalisieren:

vidoes

id   member_id