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

Tilføjelse af sum fra 2 forskellige tabeller

Jeg vil kraftigt anbefale at normalize dine data, som andre har foreslået.

Baseret på dit nuværende design kan du bruge FIND_IN_SET for at opnå det ønskede resultat.

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ører denne forespørgsel på dit givne datasæt, får du output som nedenfor:

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

Et must at læse

Er det virkelig så dårligt at gemme en afgrænset liste i en databasekolonne?

Mere

Sådan er dine vidoes tabel ville se ud, hvis du normaliserer dine data:

vidoes

id   member_id
 


  1. Hvordan kan jeg kombinere flere rækker til en kommasepareret liste i Oracle?

  2. Problemer med at bruge ROW_NUMBER() OVER (PARTITION BY ...)

  3. MySQL:dateres før 1970

  4. Sådan optimeres PostgreSQL logisk replikering