2010-02-19 5 views
4

J'essaie de COMPTER deux colonnes dans une seule requête, mais les résultats crachent les mêmes valeurs pour medcount et uploadcount. Aucune suggestion?Nombre de comptes multiples MySQL en requête unique

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; 

Répondre

7

Utilisation:

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 
Questions connexes