我试图弄清楚是否还有使用GROUP_CONCAT根据这些参数选择行。
我试图获得每个样式/区域组的最低时间。
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函数将其删除,如果是这样的话 -
这是我能做的,但我想知道这是否可以转换成一行。
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 :(得分: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
);