2016-06-24 9 views
0

"users"と "clicks"という2つのテーブルがあります。PHP MySql:SUMテーブル値Where = "from-other-table"? (INNER JOIN)

ユーザーが持っている: 'ユーザー名' と 'リファラ' クリック数を持っている: 'ユーザー' と '価値'

users.username = clicks.user

どのようにユーザーのI SUMのclicks.valueすることができますリファラーは "janosuser"ですか?

私はそれがINNER Joinだと知っていますが、SQLは何か分かりません。

答えて

0

あなたがある場合は、ユーザーテーブルにユーザー名が

SELECT sum(clicks.value) 
    FROM clicks 
    WHERE clicks.user IN 
     (SELECT users.username from users WHERE users.referrer = "janosuser") 

それとも

ユニークであるかどうかわからない場合ユーザーテーブルに繰り返しユーザー名が指定されていないことを確認します。つまり、ユーザー名はユーザー表内で一意です。そうでない場合は、そのユーザーに対して繰り返される行と合計が膨らみます

SELECT SUM(clicks.value) 
    FROM clicks 
     INNER JOIN 
    users 
    ON users.username = clicks.user 
    where users.refere = "janosuser" 
+0

INNER JOINメソッドで' = '操作' = ' –

+0

の照合ミス(utf8_general_ci、IMPLICIT)と(utf8_unicode_ci、IMPLICIT)の不正な組み合わせですか?後で 'COLLATE utf8_unicode_ci'を追加してみてください。users.referer = "Janosuser" 参照 - http://stackoverflow.com/questions/11770074/illegal-mix-of-collat​​ions-utf8-unicode-ci-implicit-and-utf8一般市民権 – PRYM

0

このクエリでは、何をしたいあなたを与える:

SELECT SUM(clicks.value) FROM clicks INNER JOIN users ON users.username = clicks.user WHERE users.referrer = 'janosuser' 
+0

私はこのメッセージ得た:表ユーザー・キャラクタ・セットUTF8のCOLLATEのutf8_general_ciをALTER ' –

+0

'=' の動作のための照合順序の不正なミックス(utf8_general_ci、暗黙的)及び(utf8_unicode_ci内、暗黙); ' ' ALTER TABLEは、文字セットをクリックutf8 COLLATE utf8_general_ci; ' –