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

SQL Join vários ids separados por vírgula


Você precisa de uma nova tabela de custos para cada custo:
Projects
-----------------
Project_id
Name

Users
--------------------
User_id
Username

Costs
----------------
Cost_id
Amount
Project_id
User_id

..

Para encontrar os custos dos projetos por projeto por usuário:
Select sum(c.Amount) as total_cost, count(*) as num_costs, p.Project_id,p.Name as project_name, u.user_id, u.Username
From costs c inner join project p on c.Project_id=c.Project_id
Inner join users u
On c.User_id=u.User_id
Group by p.Project_Id, u.user_id

Para custos por usuário
Select sum(c.Amount) as total_cost, count(*) as num_costs, u.user_id, u.Username
From costs c 
Inner join users u
On c.User_id=u.User_id
Group by u.user_id