2016-12-12 13 views
0

データベーステーブルから列に分値の行のプロパティを対応する取得:私は、以下のデータをMySQLのテーブルを持っている

ID、PERSON_NAME、SCORE、DATE

私はクエリを記述しようとしています最小SCORE値と対応するPERSON_NAME値を取得できます。私は次のクエリを試しました:

min_query = "SELECT PERSON_NAME, MIN(SCORE) FROM HTMLSCORES" 

cursor.execute(min_query) 

result = cursor.fetchone() 
name = result[0] 
min_score = result[1] 

ただし、名前の値は常に同じで、テーブルの最初のエントリのようです。 MIN(SCORE)に対応するPERSON_NAMEの値を取得したいと思います。その質問を書くにはどうすればいいですか?

SELECT PERSON_NAME, SCORE 
FROM HTMLSCORES 
WHERE SCORE = 
(SELECT MIN(SCORE) 
FROM HTMLSCORES) 

最初のサブクエリを見てみましょう。

+0

sqlは、HTMLSCORESからSCORE =(SELECT MIN(SCORE)からHTMLSCORES)のSELECT PERSON_NAMEです。 –

+0

PERSON_NAMEとSCOREの両方の値を取得できますか? – FlameDra

答えて

1

はこれを試してみてください。 MIN関数を使用してテーブルからMINスコアを見つけることができます。次に、メインクエリでは、その行のスコアがサブクエリスコアと一致する行を選択します。

クエリで人名とスコアを個別に調べているため、最初の試行は機能しません。この方法でクエリを書くと、それらをリンクします。

1
min_query = "SELECT PERSON_NAME, MIN(SCORE) AS 'Min_Score' FROM HTMLSCORES GROUP BY PERSON_NAME ORDER BY PERSON_NAME" 

これは、すべてのPERSON_NAMEとその最小得点のリストを返します。

あなたは、特定のユーザーの後にあるとPERSON_NAMEが

pyPerson = 'Name Here'  
min_query = "SELECT PERSON_NAME, MIN(SCORE) AS 'Min_Score' FROM HTMLSCORES WHERE PERSON_NAME = '" + str(pyPerson) + "' GROUP BY PERSON_NAME" 

を使用すべきかわかっている場合は、私の粗製のpythonを許したが、それは賢明なSQLを動作するはずです。

+0

ありがとう、私はあなたがSQLのようにそれを行うことができるか分からなかった。 – FlameDra

関連する問題