2016-12-03 15 views
1

これらのパラメータに基づいて行を選択するのにGROUP_CONCATを使用するかどうかを判断しようとしています。私はすべての単一のスタイル/ zonegroup最安の時間を取得するためにしようとしている何LIMITを使用して個々の行を選択する

enter image description here

AKAは:

Lowest Time for Style 0 ZoneGroup 0 
Lowest Time for Style 0 ZoneGroup 1 
Lowest Time for Style 0 ZoneGroup 2 
Lowest Time for Style 1 ZoneGroup 0 
Lowest Time for Style 2 ZoneGroup 0 
... 

私は私のプラグインを介して送信される複数のクエリを持っている可能性がありますが、私はこれが最初GROUP_CONCAT機能を排除することができれば知りたいのですが、もしそうならば - どのように。

これは私ができることですが、これを1行に変換できるかどうかを知りたいと思っています。

for (int i = 0; i < MAX_STYLES; i++) { 
    for (int x = 0; x < MAX_ZONEGROUPS; x++) { 
     Transaction.AddQuery("SELECT * FROM `t_records` WHERE mapname = 'de_dust2' AND style = i AND zonegroup = x ORDER BY time ASC LIMIT 1;"); 
    } 
} 

ありがとうございます。

+0

タグにcounter-strikeを含めますか? :) – MYGz

答えて

3

group_concat()は必要ありません。レコードをフィルタリングしたいので、WHEREを使用してください。 。 。この場合、相関サブクエリを使用します。

select r.* 
from t_records r 
where r.mapname = 'de_dust2' and 
     r.timestamp = (select min(r2.timestamp) 
        from t_records r2 
        where r2.mapname = r.mapname and 
          r2.style = r.style and 
          r2.zonegroup = r.zonegroup 
        ); 
+0

簡単な質問、r.timestamp/r2.timestampは何を参照していますか?タイムスタンプ – RedXephos2k11

+0

@ RedXephos2k11という名前の列があるので、私は混乱しているかもしれません。 。 。これらは修飾された列名であり、外側の 'from'節の' timestamp'列と、相関副照会の 'timestamp'列をそれぞれ参照します。 –

+0

私はあなたが混乱していたと思う、私は列 "time"ではなく "timestamp"ではなく、私はそれを修正しました。 – RedXephos2k11

関連する問題