0

これらの属性を持つfilesテーブルがあります:

f_id, s_id, u_id, name, size, downloads, uploaded

ユーザー アカウント ページに、ユーザーのアップロードによって提供される帯域幅の合計を表示したいと考えています。これを行うには、各ユーザーのアップロードのサイズを取得し、次に * ダウンロードのサイズを取得して、すべての結果を合計する必要があります。

もともと私はユーザーの合計ファイルサイズを取得し、次に * 合計ダウンロード数を取得していましたが、明らかにそれは正確ではありません。これが私のクエリの例です:

$sql = 'SELECT SUM(downloads)
        AS downloads
        FROM `files`
        WHERE u_id = (SELECT u_id FROM `users` WHERE username = ? LIMIT 1)
        LIMIT 1';

これどうやってするの?ありがとうございました。

4

1 に答える 1

1
SELECT SUM(size*downloads) AS bandwidth
FROM files f
   JOIN users u
      ON f.u_id = u.u_id
WHERE u.username = ?
GROUP BY u.u_id

これにより、ユーザーのアップロードによって生成された帯域幅を表す数値が得られます

于 2012-05-23T21:33:29.037 に答える