2016-10-23 2 views
0

を形成するために、別のテーブルからのネストされたSELECTを使用しました。守備テーブルが位置列Iは、以下の私は最高のトータルホームデータ横切る持っている投手を参照しようとしているMySQLの</p> <p>を学ぶためにlahmanセイバーメトリクスデータベースを使用している状態

SELECT playerID, SUM(HR) AS HR_SUM_TOTAL 
FROM batting 
GROUP BY playerID 
WHERE (SELECT POS 
     FROM fielding 
     WHERE POS = "P") 
ORDER BY HR_SUM_TOTAL DESC 

を試してみた

(POS)が含まれ、一方、バッティングのテーブルには、私がそれを行うことができますどのような方法があり、ホームラン(HR)の列が含まれています入れ子にされた選択、またはPOS列をバッティングテーブルに追加してからクエリを実行する方が簡単でしょうか?私はあなたの質問を理解していれば、事前

+0

でしょうか?何がうまくいかない? – Rogue

答えて

0

おかげで、それを正しく行うための一つの方法は、問題何

SELECT b.playerID, SUM(b.HR) HR_SUM_TOTAL 
    FROM batting b JOIN 
    (
     SELECT DISTINCT playerID 
     FROM fielding 
     WHERE POS = 'P' 
) f ON b.playerID = f.playerID 
GROUP BY b.playerID 
ORDER BY HR_SUM_TOTAL DESC 

または

SELECT playerID, SUM(HR) HR_SUM_TOTAL 
    FROM batting 
WHERE playerID IN 
(
    SELECT DISTINCT playerID 
     FROM fielding 
     WHERE POS = 'P' 
) 
GROUP BY playerID 
ORDER BY HR_SUM_TOTAL DESC 
+0

THanks、これはうまくいった。 –

+0

私はテーブルをジョインする方法をまだ学んでいませんでしたので、私はそれをやるのに苦労していたと思います。 –

+0

あなたは大歓迎です:)。 'JOIN'がないバージョンの更新された答えを見てください。 – peterm

関連する問題

 関連する問題