2016-10-05 5 views
-1

私はこのテーブルを持っています。 PREDICTION VALUE> GAME MIN_VALUE すべてのPREDICTION値が同じID_GAMEで、少なくとも1つのPREDICTION VALUE> GAME MIN_VALUEを取得する必要があります。この例では同一のIDを持つ1つの条件と他の値を持つすべての値を取得するためのMysqlクエリ

GAME 

ID  PLAYER  MIN_VALUE 
1  John  1.2 
2  Paul  1.4 
3  Henry  1.6 
4  Tom  2.1 

PREDICTIONS 

ID_GAME  HOUSE  VALUE  
1   house_a  1.5 
1   house_b  1 
2   house_a  1.2 
2   house_b  1.4 
2   house_c  1.5 
3   house_a  1.5 
3   house_b  1.7 
3   house_c  1.8 
3   house_d  1.9 
4   house_b  1.6 
4   house_d  1.9 

私はこれを取得する必要があります:私は良い結果せずに、このMySQLのクエリを試してみた

ID_GAME  HOUSE  PLAYER  VALUE MIN_VALUE 
1   house_a  John  1.5  1.2 
1   house_b  John  1  1.2 
2   house_a  Paul  1.2  1.4 
2   house_b  Paul  1.4  1.4 
2   house_c  Paul  1.5  1.4 
3   house_a  Paul  1.5  1.4 
3   house_b  Henry  1.7  1.6 
3   house_c  Henry  1.8  1.6 
3   house_d  Henry  1.9  1.6 

を:

SELECT *     
FROM game m 
INNER JOIN predictions p1 ON m.id = p1.id_game 
INNER JOIN predictions p2 ON m.id = p2.id_game 
WHERE p1.value >= m.min_value OR p2.value < m.min_value 
AND p1.id_id_game = p2.id_id_game 
+0

私は – kurtko

+0

を参照してください。そのSQLクエリhttp://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-を行う方法を知っておく必要があります私にとって非常にシンプルなSQLクエリ – Strawberry

答えて

0

あなたが試すことができます'backtick'をテーブル名MATCHの前後に配置し、次のクエリを使用します。

SELECT ID_MATCH, HOUSE, PLAYER, VALUE , MIN_VALUE 
FROM PREDICT 
LEFT JOIN `MATCH` ON `MATCH`.ID = PREDICT.ID_MATCH 

MATCHはMySQLで予約済みのキーワードです。詳細については訪問: https://dev.mysql.com/doc/refman/5.7/en/keywords.html#idm140118802075536

+0

@kurtkoあなたが必要なものを手に入れましたか? –

+0

問題は 'MATCH'キーワードではありませんでした(私は実際のSQLでそれを使用しません)。更新された例を参照 – kurtko

関連する問題