これは複雑なクエリであり、PHPで配列値を調整するのではなく、1つのステートメントで実現したいと考えていました。
次の目的の出力を達成するには:
User Jobs Total
John D. 5 $1245.67
Mary L. 3 $800.56
これまでのところ、これは私が持っているクエリです:
SELECT
SUM(job.cost) AS sum,
COUNT(DISTINCT job.user) as count,
user.id, user.firstname, user.lastname
FROM `job`
LEFT JOIN `user` ON job.user = user.id
GROUP BY user.id
しかし、カウント値は間違っています。それは個別のユーザーであるため、もちろんそれぞれが間違っています。これを修正するにはどうすればよいですか?
テーブルuser
id, name, etc.
テーブルjob
id, user, cost
1user
対多でjob
アップデート
これは正しく機能しているようです:
SELECT
SUM(job.cost) AS sum,
COUNT(1) as count,
user.id, user.firstname, user.lastname
FROM `job`
LEFT JOIN `user` ON job.user = user.id
GROUP BY user.id