我正在尝试在单个查询中计算两列,但结果却为medcount和uploadcount吐出了相同的值。有什么建议?
SELECT * , COUNT($tbl_list.listname) AS listcount, COUNT($tbl_uploads.id) AS uploadcount FROM $tbl_members LEFT JOIN $tbl_list ON $tbl_members.username = $tbl_list.username LEFT JOIN $tbl_uploads ON $tbl_members.username = $tbl_uploads.username GROUP BY $tbl_members.username ORDER BY $tbl_members.lastname, $tbl_members.firstname;
使用:
SELECT tm.*, x.listcount, y.uploadcount FROM $tbl_members tm LEFT JOIN (SELECT tl.username, COUNT(tl.listname) AS listcount FROM $tbl_list tl GROUP BY tl.username) x ON x.username = tm.username LEFT JOIN (SELECT tu.username, COUNT(tu.id) AS uploadcount FROM $tbl_uploads tu GROUP BY tu.username) y ON y.username = tm.username GROUP BY tm.username ORDER BY tm.lastname, tm.firstname