2017-11-20 20 views
0

私はSQLデータベースに「PP_Match」と呼ばれるテーブルをいくつか列に入れています。別の列の最高値に基づいて列を更新します

ID、POSITION_1、Position_2、ラウンドとDraw_size

このテーブルのIDで、POSITION_1とPosition_2は一緒に複合キーであります!

「Round」列の最高値に基づいて、Draw_size列を更新したいとします。これをもっと楽しくするために、Draw_size列にはあらゆる種類のスポーツで使用するノックアウトドロー(エリミネーションドロー)が表示されます。

特定のIDのRoundの最高値が1の場合、Draw_sizeに '2'を表示します。最大値が2の場合、draw_sizeは4で、Round列の3はdraw_sizeで8を返します(4 = 16,5 = 32,6 = 64,7 = 128)。

特定のIDのすべての行を更新したいとします。

レッツは、私が「

... ID 001は、その後、私は8のDraw_size値で、すべての5行を更新する、3として「ラウンド」でhigest値を使用して、データベース内の5行を持っていることを言います複数回試みて失敗しました...

あなたのassitanceのためにみんなありがとう!

/フレッド

答えて

0

そのようなことは、あなたは命の恩人です

UPDATE PP_MATCH pp1 
LEFT JOIN (
    SELECT ID, MAX(ROUND) as Max_Round FROM PP_MATCH GROUP BY ID) A 
ON A.ID = pp1.ID 
SET pp1.Draw_size = POW(2, Max_Round) 
+0

を動作するはずです! これはそれでした... 私は少し変更する必要がありましたが、あなたのクエリは成功の鍵でした! ありがとうございます! –

関連する問題